您的位置:首页 > 编程语言 > C#

C# 一些自己需要知道的事情

2011-12-30 11:20 513 查看
[ThreadStaticAttribute]
static int currId;

double dValue = unchecked( (double)nValue));



Thread.Sleep和Timer性能比较

应该是Thread.Sleep比较好

http://www.cnblogs.com/dataflow/archive/2009/03/11/1408731.html

lambda的一个应用

Thread t1 = new Thread(() =>

{

Thread.Sleep(1000);

Thread t = Thread.CurrentThread;

Console.WriteLine("Name: " + t.Name);

Console.WriteLine("ManagedThreadId: " + t.ManagedThreadId);

Console.WriteLine("State: " + t.ThreadState);

Console.WriteLine("Priority: " + t.Priority);

Console.WriteLine("IsBackground: " + t.IsBackground);

Console.WriteLine("IsThreadPoolThread: " + t.IsThreadPoolThread);

})

{

Name = "Thread1",

Priority = ThreadPriority.Highest

};

多线程与并行

http://www.pin5i.com/showtopic-26814.html

那么,我们如何知道线程池中的线程都运行结束了呢,可以想到上文用过的Monitor结构:

Stopwatch sw = Stopwatch.StartNew();

for (int i = 0; i < totalThreads; i++)

{

ThreadPool.QueueUserWorkItem(o =>

{

Thread.Sleep(1000);

int a, b;

ThreadPool.GetAvailableThreads(out a, out b);

Console.WriteLine(string.Format("({0}/{1}) #{2} : {3}", a, b, Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("mm:ss")));

lock (locker)

{

runningThreads--;

Monitor.Pulse(locker);

}

});

}

lock (locker)

{

while (runningThreads > 0)

Monitor.Wait(locker);

}

Console.WriteLine(sw.ElapsedMilliseconds);

Console.ReadLine();

复制代码

界面假死的解决方法:

http://www.pin5i.com/showtopic-26820.html

LINQ 比较自定义的类型,很有用!

/article/5481821.html

并行很好的文章

/article/8801554.html

关于Task的,还涉及到异常

/article/4666960.html

d:/projects/TaskTest 就是里面的一个例子

int[] 的类型是 int[]

父类型是 Array

IsArray

GetElementType 将返回 int
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐