using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace Lock
{
class Program
{
static void Main(string[] args)
{
testlock();
}
public static void testlock()
{
ManualResetEventSlim mre = new ManualResetEventSlim(false, 100);
SemaphoreSlim sem = new SemaphoreSlim(2);
int i = 0;
Task task=Task.Factory.StartNew(()=>
{
//do
//{
// Console.WriteLine("task i is {0}", i);
// Console.ReadLine();
//}
//while (i < 10);
//mre.Set();
for (i = 0; i < 10; i++)
{
Console.WriteLine("task i is {0}", i);
}
mre.Set();
sem.Wait();
sem.Release();
}
);
Task task2 = Task.Factory.StartNew(() =>
{
//mre.Wait();
Console.WriteLine("task2 i is {0}", i);
Console.WriteLine("1111111111");
Console.ReadLine();
}
);
Task task3 = Task.Factory.StartNew(() =>
{
Console.WriteLine("2222");
}
);
Task.WaitAll(task, task2,task3);
} }
}
现在问题是每次输出的顺序都不同,求解释
解决方案 »
- C#中十六进制相加问题
- 问一个C#加载程序集的问题
- 新手在线求救(急)
- 如何在C#winform程序里制作饼图,柱状图,以及线图等
- C# panel 嵌套Form页面
- C++ builder和C#
- 在自定义安装类中重载Install(System.Collections.IDictionary stateSaver)加入base.Rollback(stateSaver)怎么会错误啊。。。
- ★★★★★检测到 DisconnectedContext 啥意思
- 正则表达式的难题:请问如何过滤代码中的链接?
- 网上投了上百封简历居然没有一个回应。真心求教 投简历诀窍
- 如何检验数据插入成功
- c# 防止任务管理器强行结束进程 (关注给分) 百分贴
task.wait(a)
......
task.wait(b)
......
task.wait(c)
如下:class Threads
{
public const int Repet = 1000;
public static void Main()
{
ThreadStart threadStart = new ThreadStart(DoWock);
Thread thread = new Thread(threadStart);
thread.Start(); for (int count = 0; count < Repet; count++)
{
Console.Write('-');
}
thread.Join();
} public static void DoWock()
{
for (int count = 0; count < Repet; count++)
{
Console.Write('.');
}
}
}该程序的输出结果是不确定的