草庐IT

threaded-comments

全部标签

c# - 等待和异步属性中的方法错误 'Cannot await ' System.Threading.Tasks.Task'

我已经为.NETFramework4、Silverlight4和5以及WindowsPhone7.5和8安装了NuGetPackageAsync。Version1.0.16我使用的是Microsoft.NET4.0,但由于虚拟主机包限制,我无法升级。(可悲!)我的测试代码:(我正在执行LinqtoSQL查询代替Thread.Sleep)publicclassSearch{publicasyncTask>GetResults(stringSearchString){awaitSystem.Threading.Tasks.Task.Factory.StartNew(()=>Thread.S

c# - System.Threading.Thread继承

是否可以继承Thread类并重写Start方法? 最佳答案 关于为什么有人要这样做:许多语言(例如Java)和/或线程API(例如Qt)允许开发人员通过从“线程”基类继承,然后重载一个方法来实现线程实现线程例程。在Qt中广泛使用了这个模型后,我实际上发现它非常方便——不是让线程以某些函数或方法为目标,这通常会导致奇怪和/或令人费解的代码,而是将整个线程包含在一个对象中。这是使用QtAPI的示例代码:classMyThread:publicQThread{Q_OBJECTprotected:voidrun();};voidMyThre

c# - 使用 Simple Injector 的 Per Thread 和 Per Web Request 的混合生活方式

我正在使用SimpleInjector作为我的IoC库。我根据网络请求注册了DbContext,它工作正常。但是有一项任务是我在后台线程中运行它。所以,我在创建DbContext实例时遇到了问题。例如Service1有一个DbContext实例Service2有一个DbContext的实例Service1和Service2从后台线程运行。Service1获取实体并将其传递给Service2Service2使用该实体,但实体与DbContext分离其实问题就出在这里:Service1.DbContext和Service2.DbContext的区别。似乎当我在ASP.NETMVC中的单独线

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了

支持RT-Thread最新版本的瑞萨RA2E1开发板终于要大展身手了熟悉RT-Thread和瑞萨MCU的朋友都知道,当前RT-Thread仓库的主线代码是不支持RA2E1这个BSP的。刚好,最近我在联合瑞萨推广一个叫《致敬未来的攻城狮计划》,使用的就是RA2E1开发板,正好乘着这个机会把RA2E1这个BSP合入到主线去,想必一定非常有趣。文章目录1写在前面2《致敬未来的攻城狮计划》2.1计划内容2.2当前进展3让RA2E1支持RT-Thread3.1遇到的问题3.2查找资料3.3新的问题来了3.4咨询大神3.5潜心研究3.6试着解决问题3.7皆大欢喜4小小总结5下一步计划6文末福利1写在前面借

c# - Thread.CurrentPrincipal.Identity.Name 在 WPF 中为空

编辑简单的问题是,我怎样才能让Thread.CurrentPrincipal.Identity.Name让当前用户在WPF中登录?结束编辑我正在尝试调用一个现有方法(不在任何类型的服务中;只是POCO中的一个方法)来检索当前用户:Thread.CurrentPrincipal.Identity.Name这段代码是由其他人编写的,并且(大概)与他的ASP.NETMVC项目一起工作。我正在尝试从WPF中调用相同的方法,但名称现在为空。我能做些什么吗? 最佳答案 将Thread.CurrentPrincipal设置为newWindowsP

c# - 在 Windows 服务中使用 Thread.Sleep()

我正在编写一个需要长时间休眠的Windows服务(最长休眠时间为15小时,最短时间为30分钟)。我目前正在使用Thread.Sleep(calculatedTime)将我的代码置于sleep模式。Thread.Sleep是最好的选择还是我应该使用计时器?我已经用谷歌搜索了一段时间,但找不到简洁的答案。由于这是一个Windows服务,我不必担心锁定UI,所以我想不出不使用Thread.Sleep的理由。如有任何见解,我们将不胜感激。 最佳答案 我会使用计时器Thread.Sleep,它可能会导致阻塞,从而阻止服务关闭。如果间隔如此广泛

c# - "Current thread must be set to single thread apartment (STA)"将字符串复制到剪贴板时出错

我试过来自HowtocopydatatoclipboardinC#的代码:Clipboard.SetText("Test!");我得到这个错误:Currentthreadmustbesettosinglethreadapartment(STA)modebeforeOLEcallscanbemade.EnsurethatyourMainfunctionhasSTAThreadAttributemarkedonit.我该如何解决? 最佳答案 如果您无法控制线程是否以STA模式运行(即测试、插件到其他应用程序或只是一些随机发送该调用以在无

c# - 什么时候用Task,什么时候用Thread?

我刚刚问了有关Task的问题,但意识到我实际上想问更一般的问题。有人可以总结一下任务和线程的优缺点。如何理解我应该使用任务还是线程? 最佳答案 Task是以异步方式执行某事的命令。Thread实际上是OS内核对象,它执行所请求的内容。将Task想象成一个聪明的线程聚合器/组织器,它“知道”在您的CPU上同时运行多少任务更好。它只是比多线程的常见实现更聪明(这就是为什么建议选择Microsoft的原因)。此功能可帮助您以更轻松的方式管理Threads。也看看这个ShouldiuseThreadPoolsorTaskParallelLi

c# - 为什么 GC System.Threading.OverlappedData 需要这么长时间?

我正在通过内存分析器运行我的应用程序以检查是否有泄漏。事情似乎有点好,但我得到了很多这些OverlappedData,它们似乎在终结器队列中徘徊,几乎什么都不做。它们是重叠IO的结果,已通过关闭连接两端的底层NetworkStream取消。网络流本身被释放。任何地方都没有NetworkStream的实时实例。通常,它们Root于称为OverlappedDataCacheLine的东西。我做的第一件事就是在回调中调用EndRead,所以没有调用BeginRead应该没有相应的EndRead。这是一个非常典型的外观,表明谁将它从工具中取出最后它确实得到了GC,但它需要永远-当我开始大约一千

c# - 如何优雅地停止 System.Threading.Timer?

我有一个用C#实现的Windows服务,它需要经常做一些工作。我已经使用System.Threading.Timer实现了这一点,该回调方法负责安排下一个回调。我无法优雅地停止(即处理)计时器。以下是您可以在控制台应用程序中运行的一些简化代码,可以说明我的问题:constinttickInterval=1000;//onesecondtimer=newTimer(state=>{//simulatesomeworkthattakestensecondsThread.Sleep(tickInterval*10);//whentheworkisdone,schedulethenextcal