每个人都有自己的知识体系。
Toggle navigation
Home
随笔
C#/.Net
树莓派 / Raspberry
皓月汉化组
Beego
Golang
OxideMod
apache
haproxy
windows
Java
Objective-C
日语/罗马音歌词/日语常识
MongoDB
python
电学
公告
Minecraft服务器-公告
NanoPi
C4D (CINEMA 4D)
生活
推流/m3u8/rtmp/rtsp
Unity3d
ffmpeg
数据结构
区块链
tarui
UnityForPSVita
About Me
Archives
Tags
BackgroundWorker 使用
2018-02-06 15:47:50
105
0
0
akiragatsu
BackgroundWorker 顾名思义 就是后台工作 后台运行的意思 现在我写一个用法示例 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Threading; namespace t1 { class Program { static void Main(string[] args) { System.ComponentModel.BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate (object sender, DoWorkEventArgs e) { Thread.Sleep(5000); Console.WriteLine("后台三秒执行完成"); }; worker.RunWorkerAsync(); Console.WriteLine("主函数执行完毕"); Console.ReadLine(); } } } 输出结果是 主函数执行完毕 后台三秒执行完成 说明延迟操作是成功了的。 ------下面认真的话 你就输了---------- 那么我们继续喜闻乐见的探究一下、 BackgroundWorker 是交给程序本身在运行、还是交给系统托管的 我们去掉最后的Console.ReadLine();即程序主流程执行完、控制台应用程序就结束。 然后我们在中间的delegate里的sleep后面 加入写入文件操作的代码 等待在控制台程序输出完成并终止命令窗之后、看是否有文件写入 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Threading; using System.IO; namespace t1 { class Program { static void Main(string[] args) { System.ComponentModel.BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate (object sender, DoWorkEventArgs e) { Thread.Sleep(3000); string file = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"user.txt"; //string content = txtContent.Text; if (File.Exists(file) == true) { File.WriteAllText(file, "233333", Encoding.Default); } else { FileStream myFs = new FileStream(file, FileMode.Create); StreamWriter mySw = new StreamWriter(myFs); mySw.Write("233333"); mySw.Close(); myFs.Close(); } Console.WriteLine("后台三秒执行完成"); }; worker.RunWorkerAsync(); Console.WriteLine("主函数执行完毕"); //Console.ReadLine(); } } } 然而并没有文件输出、 所以BackgroundWorker 也只是程序本身的托管 用途应该是长时间的操作、用它、避免UI阻塞之类的作用
Pre:
皓月最推荐听的BGM或OST 第一季:东方篇-2
Next:
死宅鸡汤!死宅如何树立自信 (皓月的演讲稿)
0
likes
105
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.