c#用一个线程同步的简单例子
2012-12-23 10:14
405 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; namespace csharp_xmlTransPortTest { public partial class Form1 : Form { public delegate void ThreadProcess(); public Form1() { InitializeComponent(); } XmlDocument statusDoc = new XmlDocument(); public void xx() { thread0 = new Thread(new ThreadStart(startedcross)); thread0.Start(); thread1 = new Thread(new ThreadStart(started1cross1)); thread1.Start(); } private int i = 100; private Thread thread0; private Thread thread1; private object str = new object(); private void startedcross() { ThreadProcess tp = new ThreadProcess(started); tp.BeginInvoke(null, null); } private void started1cross1() { ThreadProcess tp1 = new ThreadProcess(started1); tp1.BeginInvoke(null, null); } private void started() { while (true) { //string str = "32"; lock (str) { if (i > 0) { textBox1.Text += ((i--).ToString() + "\r\n"); } } } } private void started1() { while (true) { lock (str) { if (i > 0) { textBox1.Text += ((i--).ToString() + "\r\n"); } } } } private void button1_Click(object sender, EventArgs e) { xx(); } } }
lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。
相关文章推荐
- 一个简单的C#多线程间同步的例子
- 一个简单的C#多线程间同步的例子 (转)
- 一个极其简单的在线C#IDE例子(zz)
- 一个简单的C#多线程间同步的例子
- 用c#进行directX开发的一个简单例子
- 一个简单的C#多线程间同步(事件方法)的例子
- 一个极其简单的在线C#IDE例子
- c#中子线程控制进度条的一个简单例子
- 一个简单的C#多线程间同步的例子.[转]
- C#简单线程同步例子
- 一个很简单的C#例子,给网友解答的,总觉得应该有更简单的方法
- C# Remoting的一个简单例子
- 一个简单的C#多线程间同步的例子
- 一个简单的C#多线程间同步的例子
- C# Remoting的一个简单例子
- 一个简单的C#多线程间同步的例子
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- C# hook的一个简单例子
- C#中的一个线程同步的例子
- 一个简单的小例子让你明白c#中的委托