Multithreading OmniThread:线程池停止工作
我遇到了一个奇怪的错误,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
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,这是安排任务的按钮。。。对不起,我觉得这很明显。编辑我的问题