C# Thread 线程的停止和恢复

本文详细探讨了如何在C#中管理和控制线程,包括如何安全地停止线程以及如何实现线程的暂停和恢复功能。通过实例代码,展示了使用Thread类的Abort方法以及其他同步机制来实现线程操作的关键技巧。
部署运行你感兴趣的模型镜像


/*
因为公用语言运行时管理了所有的托管的线程,同样它能在每个线程内抛出异常。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();
        }
    }
}

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值