草庐IT

c# - 主线程结束时线程不会终止

我有一个奇怪的问题:在我的C#应用程序中,我正在创建另一个线程,如下所示:ThreadprintThread=newThread(printWorker);printThread.Name="LoggerMainThread";printThread.IsBackground=true;printThread.Start();当我的主线程结束时,这个新线程继续工作,尽管它被标记为后台。这可能是什么原因造成的?这个对象持有一个Mutex对象,不确定这可能是原因......有什么想法吗?这是来自printWorker方法的代码:while(loggerIsActive){LogMessag

c# - 如果未返回,则在间隔后终止线程

我有一个线程可以从网络或串行端口获取一些数据。如果在5秒内没有收到数据,线程必须终止(或返回false)。换句话说,如果线程运行时间超过5秒,它必须停止。我正在用C#编写,但任何.NET语言都可以。 最佳答案 有两种方法:1。封装超时从网络或串口读取数据的线程可以测量从它开始时起耗时,等待数据的时间不超过剩余时间。网络通信API通常提供为操作指定超时的方法。因此,通过执行简单的DateTime算法,您可以将超时管理封装在工作线程中。2。外部超时使用另一个线程(或者如果可行的话在主线程中执行)等待工作线程在特定时间限制内完成,如果没有

c# - 如何从 C# 字符串中获取空终止字符串?

我正在与需要空终止字符串的服务器通信如何在C#中巧妙地做到这一点? 最佳答案 我认为聪明的方法是简单地做。stringstr="Anexamplestring"+char.MinValue;//Addnullterminator.然后将其转换成字节发送给服务器。byte[]buffer=ASCIIEncoding.ASCII.GetBytes(str);当然,您使用的编码取决于服务器期望的编码。 关于c#-如何从C#字符串中获取空终止字符串?,我们在StackOverflow上找到一个类

c# - 如何终止嵌套循环中的外循环?

终止下面示例中所有嵌套循环的最佳方法是什么。一旦if语句为真,我想终止外部for语句(与I)。换句话说,我需要整个循环停止。有比将I设置为10更好的方法吗?for(intI=0;I 最佳答案 我会将其重构为一个方法,并在需要时调用return。您也可以使用goto,我为此使用了goto,但它不受欢迎。这是愚蠢的;这种情况是它存在于语言中的原因。voidDoSomeStuff(){for(intI=0;I 关于c#-如何终止嵌套循环中的外循环?,我们在StackOverflow上找到一个类

c# - 帮助解决 C# 中的\0 终止字符串

我正在使用一个低级别的nativeAPI,我在其中发送一个不安全的字节缓冲区指针来获取一个C字符串值。所以它给了我//usingbyte[255]c_strstrings=newstring(Encoding.ASCII.GetChars(c_str));//nows=="heresastring\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0(etc)";很明显我做的不对,我该如何摆脱多余的部分? 最佳答案 .NET字符串不是以null结尾的(正如您可能已经猜到的那样)。因此,您可以像对待任何普通字符一样对待'\0'。

c# - 如何在 C# 中终止线程?

我想在C#线程方面碰碰运气,我知道一些关于C线程的知识。所以我只想问我是否想终止一个线程,我应该用smt.Abort()来完成或者它会在函数结束后“自杀”?另外,C#中的C中有没有类似pthread_exit()的东西? 最佳答案 Thread.Abort将“杀死”线程,但这大致相当于:场景:你想关掉你的电脑解决方案:将炸药绑在计算机上,点燃它,然后运行。最好通过CancellationTokenSource.Cancel触发“退出条件”,设置一些(安全访问的)“正在运行”bool等,然后调用Thread.Join。这更像是:场景:

c# - 当父进程在 C# 中终止时如何终止子进程

任务:如果父进程终止,则自动终止所有子进程。父进程不仅可以以正确的方式终止,还可以通过例如在ProcessExplorer中终止来终止。我该怎么做?Сtopic中的类似问题建议使用Job对象。如何在不导出外部DLL的情况下在C#中使用它?我尝试使用作业对象。但是这段代码不能正常工作:varjob=PInvoke.CreateJobObject(null,null);varjobli=newPInvoke.JOBOBJECT_BASIC_LIMIT_INFORMATION();jobli.LimitFlags=PInvoke.LimitFlags.JOB_OBJECT_LIMIT_KIL

c# - 如何有效地终止 C# 中的线程?

我不是trying至beat一个deadhorse,honestly.我已经阅读了所有关于线程终止的建议,但是,请考虑代码。它执行以下操作:它启动一个线程(通过StartThread方法)它调用数据库在ServiceBroker队列中查找任何内容。请注意WAITFOR命令-这意味着它会一直坐在那里直到队列中有内容。所有这些都在MonitorQueue方法中。终止线程。我尝试了.Interrupt-它似乎什么也没做。然后我尝试了.Abort,它永远不应该被使用,但即使这样也没有任何作用。ThreadthxMonitor=newThread(MonitorQueue);voidStartT

c# - 为什么尾随 %20(在本例中为有效数据)会终止 asp.net mvc 路由

执行以下Controller操作publicActionResultNextBySURNAME(intid,stringdata){//codetoprocessthedataandedittheidaccoringlynotwrittenyetreturnRedirectToAction("Edit",new{id=id});}如果我调用它/Mycontroller/NextBySURNAME/12/Smith%20Simon然后它工作正常(在这种情况下编辑记录12)但是/Mycontroller/NextBySURNAME/12/Smith%20给我一​​个404现在我知道在某些情

javascript - jQuery - 如何在用 clearInterval 终止 setInterval 后重新启动它?

我想创建一个包含2个按钮的页面,“留下”和“离开”。按钮下方有一个iFrame。当页面第一次加载时,iFrame会在10秒后自动开始刷新。当用户点击STAY按钮时,它将停止刷新。之后,如果他点击“离开”按钮,iFrame将在10秒后再次开始刷新。我正在使用这段代码:$(document).ready(function(){varrefreshIntervalId=setInterval("update()",10000);$('#leave').click(function(){varrefreshIntervalId=setInterval("update()",10000);;})