
private voID TCPIP_DoWork(object sender,DoWorkEventArgs e){ int a = 0; s.Send(System.Text.EnCoding.ASCII.GetBytes("s")); if (worker.CancellationPending == true) { s.Send(System.Text.EnCoding.ASCII.GetBytes("t")); } else { try { a = s.Available; s.Receive(bytes); Thread.Sleep(25); using (Stream fileStream = new fileStream(@sbpfile.Text,fileMode.Append,fileAccess.Write,fileShare.None)) { using (BinaryWriter bw = new BinaryWriter(fileStream)) { if (a == 0) Thread.Sleep(20); else if (a < 1023) { bw.Write(bytes,a); Thread.Sleep(20); } else { bw.Write(bytes,1024); Thread.Sleep(20); } } } } catch(Exception e) { Console.Writeline("{0} Exception.",e); } }} 注意:这些Thread.Sleep() *** 作的唯一原因是因为它们似乎是bw不会自行跳过的临时修复…
解决方法 尝试检查RunWorkerCompleted事件处理程序上的Error属性.也许你会遇到一些异常,这些异常不会被代码处理.voID worker_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e){ if (e.Error != null) Console.Writeline("{0} Exception.",e.Error); // etc} 总结 以上是内存溢出为你收集整理的c# – 后台工作程序因处理过多而崩溃?全部内容,希望文章能够帮你解决c# – 后台工作程序因处理过多而崩溃?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)