c# – 如何使方法在“后台”中运行(线程化?)
发布时间:2020-12-15 17:18:32 所属栏目:百科 来源:网络整理
导读:我目前有一些代码循环查找特定短语的文本文件.但是,当此方法运行时,整个应用程序将锁定.我假设因为它是循环的,这就是我想要的. 我希望这在后台发生,因此仍然可以进行常规方法和用户与应用程序的交互. 如何完成/改进? private void CheckLog(){ while (true)
我目前有一些代码循环查找特定短语的文本文件.但是,当此方法运行时,整个应用程序将锁定.我假设因为它是循环的,这就是我想要的.
我希望这在后台发生,因此仍然可以进行常规方法和用户与应用程序的交互. 如何完成/改进? private void CheckLog() { while (true) { // lets get a break Thread.Sleep(5000); if (!File.Exists("Command.bat")) { continue; } using (StreamReader sr = File.OpenText("Command.bat")) { string s = ""; while ((s = sr.ReadLine()) != null) { if (s.Contains("mp4:production/")) { // output it MessageBox.Show(s); } } } } } 解决方法
使用
class Foo { private Thread thread; private void CheckLog() {...} private void StartObserving() { thread = new Thread(this.CheckLog); thread.Start(); } } 或调色板中的backgroundworker组件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |