tthread

    5热度

    2回答

    我有一个的TThread对象,并希望能够启动/通过一个按钮来停止线程程序的主要形式。我一直在寻找方法来做到这一点,到目前为止,我有以下想法: 终止和释放线程,当用户单击停止,并单击开始时创建一个新的。 使用睡眠延迟线程(我不想这样做) 有一个属性是一个布尔值来确定线程是否暂停或不。 Execute中的代码只有在此布尔值为false时才会发生。 我倾向于#3。在主窗体的TThread对象上设置布尔属

    -1热度

    1回答

    我想搜索所有子文件夹中的所有文件,所以它需要很长时间和应用程序停止响应,所以我用Thread(这是第一次与Threads工作)我读了它,我发现这种方式来创建和执行线程,但是当我调用线程时什么都没有发生,我不明白为什么我不能在主窗体上使用添加的组件,我不得不重新声明它? 我在这里想念什么? type TSearchThread = class(TThread) private

    0热度

    3回答

    我一直在试图设置FreeOnTerminate属性在的OnTerminate程序,但它似乎像它要么为时已晚来设置它,或者它完全无视write程序。 我该如何设置/更改FreeOnTerminate属性inOnTerminate程序? 是否有任何解决方法? 一些代码: unit Unit2; interface uses Winapi.Windows, Winapi.Message

    8热度

    1回答

    我想在线程中使用COM接口。从我读过的内容来看,我必须在每个线程中调用CoInitialize/CoUninitialize。 虽然这是工作的罚款: procedure TThreadedJob.Execute; begin CoInitialize(nil); // some COM stuff CoUninitialize; end; 当我移动到构造函

    1热度

    2回答

    我对如何在动态创建的TThread中存储唯一标识符有一些学术兴趣。 我创造这样的事情: procedure TForm1.Button1Click(Sender: TObject); var thrn:word; begin for thrn := 0 to 5 do//<--- this is a loop variable that should give the unique numb

    0热度

    2回答

    我无法按照它的工作方式。 首先是一个非常简单的例子,以更好地解释我的情况。 此代码位于新项目中的新Form Form1中。其中mmo1是备忘录组件。 TOb = class Name : String; constructor Create(Name : String); procedure Go(); end; procedure TOb.Go; begin

    5热度

    1回答

    我有一个耗时的例程,我想用Delphi XE7的新并行库并行处理。 这里是单线程版本: procedure TTerritoryList.SetUpdating(const Value: boolean); var i, n: Integer; begin if (fUpdating <> Value) or not Value then begin f

    3热度

    1回答

    My Environment: Rad Studio XE4 using C++ 我正在使用TThread的软件工作。最近,我遇到了一个问题,在程序启动后几天,TThread突然被破坏。 在TThread中,线程使用Synchronize()方法更改窗体(例如TLables)的显示。我想知道这可能会导致一些问题。 我在线程中的多个部分进行日志记录,以便我可以捕获问题的原因。但是当我检查日志时,

    3热度

    1回答

    我在Delphi中遇到了一些问题。 我写使截图两个简单的功能,将其转换为JPEG和解码为base64,流。 它的作品不错,如果我在主流程序上制作。但是,如果我创建一个TThread类并启动此功能执行,Windows冻结,我只能重新启动我的电脑。 通过多次尝试,我发现挂起电脑通过程序JpegImg.SaveToStream(Input); 如果我不转换位图为JPEG,其作品很好,我得到的图像字符串。

    1热度

    1回答

    我的工作是记录我的应用程序日志保存至文件TLogger类... 我必须得到从文件记录到TMemo方式: 1.分配TMemo到TLogger类,然后将True分配给DisplayInMemo属性,然后调用GetLogFromFile(); 2.调用GetLogsFromFile();然后Self.Memo1.Text:= TLogger.LogsResult; ...下面评论的解决方案正常工作...