linux创建线程 实例,C#多线程编程实例 线程与窗体交互【附源码】

C#多线程编程实例 线程与窗体交互

8f447e7ef33d3a489885be4b6f8c53f0.png

代码:

public partial class Form1 : Form

{

//声明线程数组

Thread[] workThreads = new Thread[10];

public Form1()

{

InitializeComponent();

}

//此委托允许异步的调用为Listbox添加Item

delegate void AddItemCallback(string text);

//这种方法演示如何在线程安全的模式下调用Windows窗体上的控件。

private void AddItem(string text)

{

if (this.listBox1.InvokeRequired)

{

AddItemCallback d = new AddItemCallback(AddItem);

this.Invoke(d, new object[] { text });

}

else

{

this.listBox1.Items.Add(text);

}

}

//数据采集方法

public void DataGet()

{

while (true)

{

AddItem("ok");

Thread.Sleep(1000);

}

//如果此方法退出了,那么这个线程也就退出了

}

///

/// 启动线程

///

///

///

private void button1_Click(object sender, EventArgs e)

{

//循环创建并启动线程执行

for (int i = 0; i < workThreads.Length; i++)

{

if (workThreads[i] == null)

{

//如果线程不存在,则创建

workThreads[i] = new Thread(new ThreadStart(DataGet));

workThreads[i].Name = i.ToString();

workThreads[i].Start();

}

else

{

//已经存在,如果没有运行,则启动

if (workThreads[i].ThreadState == ThreadState.Aborted || workThreads[i].ThreadState == ThreadState.Stopped)

{

workThreads[i] = new Thread(new ThreadStart(DataGet));

workThreads[i].Name = i.ToString();

workThreads[i].Start();

}else{

workThreads[i].Start();

}

}

}

}

///

/// 停止线程

///

///

///

private void button2_Click(object sender, EventArgs e)

{

//循环停止线程执行

for (int i = 0; i < workThreads.Length; i++)

{

//如果线程存在,并且状态不是停止也不是终止的,则终止该线程

if (workThreads[i] != null && workThreads[i].ThreadState != ThreadState.Stopped && workThreads[i].ThreadState != ThreadState.Aborted)

{

workThreads[i].Abort();

}

}

}

}

C#多线程编程实例 线程与窗体交互源码下载:

------------------------------------------分割线------------------------------------------

具体下载目录在 /2014年资料/7月/17日/C#多线程编程实例 线程与窗体交互【附源码】

------------------------------------------分割线------------------------------------------

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值