【问题标题】:way of writing for dotnet 3.5 quick and dirty async method [closed]dotnet 3.5快速而肮脏的异步方法的编写方式[关闭]
【发布时间】:2013-11-17 17:42:35
【问题描述】:

在我的 C# 代码中,我通过使用(显然)低效的第 3 方库来调用一些跟踪服务。 问题是他们阻塞了我的线程并且用户得到了一些滞后。

我想将所有对第三方的调用封装在异步方法中。 实现它的最佳和最简单的方法是什么? 我不需要此调用的任何响应,我只想将其从主线程中删除..

有快速而肮脏的解决方案吗? 也许像 JavaScript 中的 setTimeOut(function(){/*code here*/},1) 之类的东西?

我一直在寻找解决方案,但 dot net 3.5 不支持简单快速的异步方法。

【问题讨论】:

标签: c# multithreading asynchronous


【解决方案1】:

.NET 中有很多方法可以编写多线程代码。 Jon Skeet 在这篇博文中介绍了其中一些:http://www.yoda.arachsys.com/csharp/threads/

所以这里的想法是产生一个新线程(或使用线程池中的一个线程)来执行里面的慢代码。这样主线程就不会被阻塞了。

【讨论】:

  • 谢谢,但我想要一个快速而肮脏的解决方案。此外,我需要关闭线程还是自行关闭?因为我会在这里打开很多线程..
  • 当然,new Thread(() => { /* code here */ }).Start(); 有什么不好的地方?似乎很容易。你不需要关闭一个线程。当您的代码完成执行时,它将自动停止。您不必为此担心。
  • 顺便说一句,有没有办法在这种方法中给线程命名?像“new Thread(('thread1') => { /* code here */ }).Start();”这样的东西???
  • 当然:var thread = new Thread(() => { /* code here */ }); thread.Name = "SomeName"; thread.Start();.
  • 再次感谢您,它运行良好!
猜你喜欢
  • 2015-11-24
  • 2010-09-08
  • 2010-09-15
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多