草庐IT

ws_running_shared_folders

全部标签

c# - Thread.IsAlive 和 Thread.ThreadState==ThreadState.Running

我正在使用if(Thread.IsAlive)检查线程的状况。该线程中正在运行一个表单。有时在执行过程中,即使窗体保持打开状态,对Thread.IsAlive的调用似乎评估为false。我想用if(Thread.ThreadState==ThreadState.Running)执行相同的检查。这是正确的做法吗?如果不是,可能的解决方法是什么? 最佳答案 msdnThread.IsAlive属性如果此线程已启动且未正常终止或中止,则为true;否则为假。msdn线程.ThreadState运行线程已经启动,没有阻塞,也没有挂起的Thr

c# - NUnit 3 : Forbid tests to run in parallel

我安装了最新的NUnit(3.2.0),并且所有测试都并行运行。它可能看起来像是理想的行为,但我并没有要求它,实际上它破坏了我的一些测试。我在[OneTimeSetUp]中进行了一些依赖于线程的初始化,似乎我无法做任何事情来强制NUnit按顺序运行我的测试。我读过documentation它指出默认情况下测试不是并行运行的,但实际上它们是!此外,我尝试添加以下属性:[assembly:Parallelizable(ParallelScope.None)]—没有成功。有人知道如何改变这种行为吗?附言我使用ReSharper运行它,但也尝试使用MSVS插件。UPD:我正在使用MVVMLig

c# - 如何在尝试删除文件时调试 "Sharing Violation"

我有一个多线程C#应用程序,它创建文件,打开它们进行处理,然后在完成后删除它们。此应用程序可以预期处理1-100个文件。有点随机(很可能归因于应用程序的多线程性质)当我尝试在处理后删除文件时遇到共享冲突。我的直觉告诉我,维克,你在尝试删除文件之前没有正确关闭/处置文件。如果每个文件都发生这种情况,我会凭直觉去做,但事实并非如此。所以,我试图找出我在哪里犯了错误。外面有人对如何调试此类异常有任何指示吗?如果有意义的话,我很乐意在文件上看到堆栈跟踪。我将尝试展示伪代码,但是,我的问题更多是关于如何调试此类异常:申请事件:操作开始+=创建新处理器。传输文件+=Processor.Proces

c# - 将已发送的 MailMessage 获取到 "Sent Folder"

我正在使用Exchange服务器通过SmtpClient发送MailMessages(已成功传递),但希望我发送的电子邮件转到我发送它们的电子邮件地址的已发送文件夹(未发生)。using(varmailMessage=newMailMessage("fromaddress@blah.com","toaddress@blah.com","subject","body")){varsmtpClient=newSmtpClient("SmtpHost"){EnableSsl=false,DeliveryMethod=SmtpDeliveryMethod.Network};//Applycre

c# - 任务不包含 Run 方法的定义

我第一次尝试在我的代码中实现多线程。当我尝试使用TaskT=Task.Run(()=>{});VisualStudio仍然在Run()下划线声明“任务不包含定义‘运行’”我正在使用System.Threading.Tasks;互联网对这个问题一无所知 最佳答案 .NET4.0没有Task.Run方法。相反,您可以使用:任务T=Task.Factory.StartNew(()=>{});您可以了解更多关于here的信息 关于c#-任务不包含Run方法的定义,我们在StackOverflow

c# - Entity Framework new transaction is not allowed because there are other threads running in the session,多线程保存

我正在尝试将多线程进程的日志保存在数据库中,但出现以下错误:不允许新事务,因为session中还有其他线程在运行。在每个胎面我都有这个功能:internalboolWriteTrace(IResultresult,stringmessage,bytetype){SPC_SENDING_TRACEtrace=newSPC_SENDING_TRACE(message,Parent.currentLine.CD_LINE,type,Parent.currentUser.FULLNAME,Parent.guid);Context.SPC_SENDING_TRACE.AddObject(trac

用make_shared防止复制构建

我有一个经理类,允许客户端通过两种方法添加组件:一个没有参数,即默认构造组件,而另一个则采用了rvalue(应允许客户端使用组件的自定义构造函数)。这是我想到的代码:templatestd::shared_ptrAddComponent(){returnAddComponent(TComponent{this});}templatestd::shared_ptrAddComponent(constTComponent&&obj){autoptr=std::make_shared(obj);vec.push_back(ptr);returnptr;}我的问题是std::make_shared始终

c# - 使用 Task.Run() 写入控制台失败

我的一位同事发现我们的代码存在问题,花了一段时间才查明到底发生了什么,但这个简单的例子可以最好地证明这一点://FailsclassProgram{staticvoidMain(string[]args){Task.Run(()=>Console.WriteLine("HelloWorld"));Console.ReadKey();}}//WorksfineclassProgram{staticvoidMain(string[]args){Console.Write(String.Empty);Task.Run(()=>Console.WriteLine("HelloWorld"));

c# - Application.Run 和 Form.Load 之间发生了什么?

我有一个用VB.NET为Framework4.5编写的WinForms应用程序。我注意到应用程序的启动时间异常长(我写的其他应用程序在启动时几乎立即启动,这个应用程序需要>5秒)多次启动后启动时间不会改变,所以我猜这不是应用程序首次启动期间未缓存CLR代码的情况。我通过记下启动期间的时间做了一些测试:ModulemodMainPublicMyLogAsSystem.Text.StringBuilderPublicSubMain()MyLog=NewSystem.Text.StringBuilderApplication.EnableVisualStyles()Application.S

C# - 应用程序.Run()

我刚刚开始.Net开发(C#),遇到了一些让我有点困惑的代码....如果我有FormmyForm=newForm();下面这行实际上做了什么:Application.Run(myForm);它本质上是否与myForm.ShowDialog()或myForm.Show()做同样的事情(这就是我的想法,当运行一个表单时会做)......我总是发现msdn是向新手正确解释Material的糟糕资源 最佳答案 Application.Run(myForm);使该表单对用户可见。它是第一个加载到内存中的表单。它在消息循环中运行此表单,以便您获