/*
因为公用语言运行时管理了所有的托管的线程,同样它能在每个线程内抛出异常。Abort方法能在目标线程中抛出一个ThreadAbortException异常从而导致目标线程的终止。不过Abort方法被调用后,目标线程可能并不是马上就终止了。因为只要目标线程正在调用非托管的代码而且还没有返回的话,该线程就不会立即终止。而如果目标线程在调用非托管的代码而且陷入了一个死循环的话,该目标线程就根本不会终止。不过这种情况只是一些特例,更多的情况是目标线程在调用托管的代码,一旦Abort被调用那么该线程就立即终止了。
*/
using System;
using System.Windows;
using System.Threading;
namespace WpfApp5
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
thread = new Thread(ooooMethod);
thread.IsBackground = true;
}
private void ooooMethod(Object ooo)
{
while (true)
{
Dispatcher.Invoke(() => xLabel.Content = g_i++.ToString());
System.Threading.Thread.Sleep((int) ooo);
}
}
int g_i =0 ;
Thread thread;
void start()
{
thread.Start(100);
xLabel.Content = "Thread Started";
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if ((thread.ThreadState ==ThreadState.Aborted))
{
thread = new Thread(ooooMethod);
thread.IsBackground = true;
}
if (thread.ThreadState == (ThreadState.Unstarted|ThreadState.Background))
{
start();
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
thread.Abort();
}
}
}
C# Thread 线程的停止和恢复
最新推荐文章于 2025-01-09 18:00:00 发布
本文详细探讨了如何在C#中管理和控制线程,包括如何安全地停止线程以及如何实现线程的暂停和恢复功能。通过实例代码,展示了使用Thread类的Abort方法以及其他同步机制来实现线程操作的关键技巧。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Dify
AI应用
Agent编排
Dify 是一款开源的大语言模型(LLM)应用开发平台,它结合了 后端即服务(Backend as a Service) 和LLMOps 的理念,让开发者能快速、高效地构建和部署生产级的生成式AI应用。 它提供了包含模型兼容支持、Prompt 编排界面、RAG 引擎、Agent 框架、工作流编排等核心技术栈,并且提供了易用的界面和API,让技术和非技术人员都能参与到AI应用的开发过程中
5007

被折叠的 条评论
为什么被折叠?



