Tag: 中断

C#是否可以中断ThreadPool中的特定线程?

假设我在ThreadPool排队了一个工作项,但是如果没有要处理的数据,则工作项会阻塞(从BlockingQueue读取)。 如果队列为空并且没有更多的工作进入队列,那么如果我想中断阻塞任务,我必须调用Thread.Interrupt方法,但是如何使用ThreadPool做同样的事情? 代码可能如下所示: void Run() { try { while(true) { blockingQueue.Dequeue(); doSomething(); } } finally { countDownLatch.Signal(); } } 我知道在这种情况下最好的办法是使用常规的Thread ,但我想知道是否有一个ThreadPool等效方法来中断工作项。

抛出exception后我是否必须rest?

我正在用C#编写一个自定义类,如果人们在某些方法中给出错误的输入,我会抛出几个例外。 如果抛出exception,抛出后方法中的任何代码仍会被执行吗? 我必须在投掷后rest一下,还是投掷总是退出方法?

C#只读数据来源时的串口

我想读取我的串口,但只有在数据到来时(我不想轮询)。 我就是这样做的。 Schnittstelle = new SerialPort(“COM3”); Schnittstelle.BaudRate = 115200; Schnittstelle.DataBits = 8; Schnittstelle.StopBits = StopBits.Two; …. 然后我开始一个线程 beginn = new Thread(readCom); beginn.Start(); 在我的readCom我正在连续阅读(民意调查:() private void readCom() { try { while (Schnittstelle.IsOpen) { Dispatcher.BeginInvoke(new Action(() => { ComWindow.txtbCom.Text = ComWindow.txtbCom.Text + Environment.NewLine + Schnittstelle.ReadExisting(); ComWindow.txtbCom.ScrollToEnd(); })); beginn.Join(10); } } catch (ThreadAbortException) { } catch (Exception ex) […]