我遇到这个奇怪的错误,其中omnithread停止调度任务并停止工作...
以下是重现我所遇到的错误的代码
Procedure PerformOperations(const task: IOmniTask);
Begin
Sleep(1000);
End;
procedure TForm1.Button1Click(Sender: TObject);
Var I: Integer;
begin
for I := 0 to 200 do
CreateTask(PerformOperations).
UnObserved.Schedule(ThreadPool);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ThreadPool := CreateThreadPool('ThreadPool');
ThreadPool.MaxExecuting := 60;
ThreadPool.MaxQueued := 0;
end;
当我点击按钮时,它会创建200个任务,但是当查看来自任务管理器的线程计数时,一旦线程开始减少,如果我在那一刻点击button1然后线程计数突然下降到0,之后无论我多次点击button1进行调度任务,都没有创建线程,也没有执行任何功能。我实际上在向服务器发送数据时遇到了这个错误,该服务器安排了任务,我无法分离服务器代码区域,因此我只是编写了一个样本,用于在用户端生成问题。任何人都可以帮我解决这个问题吗?
由于