我遇到了这个奇怪的错误,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 来安排任务,没有创建线程,也没有执行任何功能。我实际上在向调度任务的服务器发送数据时遇到了这个错误,我无法分离服务器代码区域,所以我只是写了一个示例来在用户端生成问题。谁能帮我解决这个问题?
谢谢