实例讲解.NET多线程执行函数
作者:网络转载 发布时间:[ 2012/11/14 11:09:18 ] 推荐标签:
3、线程同步
线程同步的方法有很多很多种volatile、Lock、InterLock、Monitor、Mutex、ReadWriteLock...
这里用lock说明问题:在哪里同步,用什么同步,同步谁?
首先感受下不同步会出现的问题:
代码是下面的代码去掉lock块。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace 多线程3_同步2
{
class Program
{
static object obj = new object();//同步用
static int balance = 500;
static void Main(string[] args)
{
Thread t1 = new Thread(new ThreadStart(Credit));
t1.Start();
Thread t2 = new Thread(new ThreadStart(Debit));
t2.Start();
Console.ReadKey();
}
static void Credit()
{
for (int i = 0; i < 15; i++)
{
lock (obj)
{
balance += 100;
Console.WriteLine("After crediting,balance is {0}", balance);
}
}
}
static void Debit()
{
for (int i = 0; i < 15; i++)
{
lock (obj)
{
balance -= 100;
Console.WriteLine("After debiting,balance is {0}", balance);
}
}
}
}
}
小结:多线程调用函数是这样。在Winform中,控件绑定到特定的线程,从另一个线程更新控件,不应该直接调用该控件的成员,这个非常有用。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11