Multithreading OmniThread:线程池停止工作

Multithreading OmniThread:线程池停止工作,multithreading,delphi,threadpool,omnithreadlibrary,Multithreading,Delphi,Threadpool,Omnithreadlibrary,我遇到了一个奇怪的错误,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(PerformOperatio

我遇到了一个奇怪的错误,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个任务,但在查看任务管理器中的线程数时,一旦线程开始减少,如果我在那一刻点击按钮1,那么线程数就会突然下降到0,此后无论我点击按钮1多少次来安排任务,都不会创建线程,也不会执行任何功能。事实上,我在向调度任务的服务器发送数据时遇到了这个错误,我无法分离服务器代码区域,所以我只编写了一个在用户端生成问题的示例。有人能帮我解决这个问题吗


谢谢

日程按钮的代码在哪里?我想是按钮1?但是我们当然只能猜测…是的按钮1,这是安排任务的按钮。。。对不起,我觉得这很明显。编辑我的问题