Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何不停地拖延_Php_Pocketmine - Fatal编程技术网

Php 如何不停地拖延

Php 如何不停地拖延,php,pocketmine,Php,Pocketmine,但是,当调用方法T时,发生了程序阻塞。 我怎么能拖延而不结巴呢 我可以使用线程,但我使用API编写的代码不接受线程 很抱歉英语不好,谢谢您必须为长时间运行的任务创建一个新的\pocketmine\Thread对象,如类文档中所述: 看起来API支持线程,所以请使用它们。我制作了一个库,明确允许您使用基于任务的类似睡眠的语法,使用PHP: 示例用法: 请注意,代码针对的是一个非常旧的API(3.0.0-ALPHA10),因此在使用之前必须对其进行更新。您对预期暂停的上下文和目的解释得太少了。一般来

但是,当调用方法T时,发生了程序阻塞。 我怎么能拖延而不结巴呢

我可以使用线程,但我使用API编写的代码不接受线程


很抱歉英语不好,谢谢

您必须为长时间运行的任务创建一个新的
\pocketmine\Thread
对象,如类文档中所述:


看起来API支持线程,所以请使用它们。

我制作了一个库,明确允许您使用基于任务的类似睡眠的语法,使用PHP:

示例用法:


请注意,代码针对的是一个非常旧的API(3.0.0-ALPHA10),因此在使用之前必须对其进行更新。

您对预期暂停的上下文和目的解释得太少了。一般来说,您希望在客户端(JavaScript)而不是服务器端(PHP)引入人工延迟。我不确定您想做什么。如果你想等待,那就是等待。如果您不想等待,只需删除
sleep
命令即可。@mario它不是Web PHP,游戏的附加插件是用PHP编写的。@user202729我想等待而不使用它stucking@VerifySystemEmail为什么你想等待,但不想同时等待?你在说什么“游戏的附加插件”?你到底想干什么?你能用什么API?不。在AsyncTask中使用播放器类或服务器类时,发生了此错误
BadMethodCallException:“无法序列化服务器实例”
@VerifySystemEmail请检查和/或如何在任务中使用
Server
Player
实例。@VerifySystemEmail API支持线程,它甚至定义了一个用于长时间运行任务的类(即
\pocketmine\Thread
类)。但是,您不能在thread对象中保留
服务器
实例的引用是一个完全不同的问题。我理解您所说的。但我想做的是使用Server和Player类,但不能在AsyncTask中使用,所以我说它不受支持。很好,所以我不能那样做。对吗?@VerifySystemEmail您可以使用
服务器
播放器
类,但是您不能将它们保存在新类的字段中,因为它们无法序列化(这是您的类所必需的)。您可能想向PocketMine的作者/社区询问关于PocketMine的更多问题,请访问。
<?php

namespace Test;

class A {

     public function T(){
           sleep(1000);
           //Code not possible for thread to perform
     }


}
?>
 [...]
 * An AsyncTask does not have its own thread. It is queued into an AsyncPool and executed if there is an async worker
 * with no AsyncTask running. Therefore, an AsyncTask SHOULD NOT execute for more than a few seconds. For tasks that
 * run for a long time or infinitely, start another {@link \pocketmine\Thread} instead.
 [...]