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

news/2024/7/10 20:55:35 标签: c#, thread, 多线程, timer, 2010
  [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的一个应用

  1. Thread t1 = new Thread(() =>
  2.     {
  3.         Thread.Sleep(1000);
  4.         Thread t = Thread.CurrentThread;
  5.         Console.WriteLine("Name: " + t.Name);
  6.         Console.WriteLine("ManagedThreadId: " + t.ManagedThreadId);
  7.         Console.WriteLine("State: " + t.ThreadState);
  8.         Console.WriteLine("Priority: " + t.Priority);
  9.         Console.WriteLine("IsBackground: " + t.IsBackground);
  10.         Console.WriteLine("IsThreadPoolThread: " + t.IsThreadPoolThread);
  11.     })
  12.     {
  13.         Name = "Thread1",
  14.         Priority = ThreadPriority.Highest
  15.     };



多线程与并行

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



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

  1. Stopwatch sw = Stopwatch.StartNew();
  2. for (int i = 0; i < totalThreads; i++)
  3. {
  4.     ThreadPool.QueueUserWorkItem(o =>
  5.     {
  6.         Thread.Sleep(1000);
  7.         int a, b;
  8.         ThreadPool.GetAvailableThreads(out a, out b);
  9.         Console.WriteLine(string.Format("({0}/{1}) #{2} : {3}", a, b, Thread.CurrentThread.ManagedThreadId, DateTime.Now.ToString("mm:ss")));
  10.         lock (locker)
  11.         {
  12.             runningThreads--;
  13.             Monitor.Pulse(locker);
  14.         }

  15.     });
  16. }

  17. lock (locker)
  18. {
  19.     while (runningThreads > 0)
  20.         Monitor.Wait(locker);
  21. }

  22. Console.WriteLine(sw.ElapsedMilliseconds);
  23. Console.ReadLine();
复制代码



界面假死的解决方法:

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


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

http://www.cnblogs.com/tianfan/archive/2010/03/06/how-to-use-linq-methods-to-compare-objects-of-custom-types.html


并行很好的文章

http://blog.csdn.net/xuzhongxuan/article/details/6288105


关于Task的,还涉及到异常

http://www.cnblogs.com/yanyangtian/archive/2010/06/01/1749199.html

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




int[] 的类型是  int[]

父类型是 Array

IsArray

GetElementType 将返回 int


http://www.niftyadmin.cn/n/1371219.html

相关文章

属性的归一化

各维属性的取值范围差别很大&#xff0c;归一化的目标是把各位属性的取值范围放缩到差不多的区间&#xff0c;例如[-0.5,0.5]。 这里我们使用一种很常见的操作方法&#xff1a;减掉均值&#xff0c;然后除以原取值范围。 做归一化&#xff08;或 Feature scaling&#xff09;…

c# DllImport 错误处理的不足及解决办法

一般而言DllImport 是十分方便的&#xff0c;但是当出现错误时&#xff0c;他给出的错误也十分模糊&#xff0c;同时是不全面的。比如&#xff0c;之前就遇到一个第三方dll&#xff0c; DllImport 死活说找不到这个dll. 但是我很确定错在这个dll&#xff0c;而且路径也对。 没办…

最近想做关于人脸识别的学习,在安装dlib包时遇到一些问题

python version 3.7.2 操作系统是 Windows 10 家庭版64位 在命令行执行pip3 install dlib时会中断&#xff0c;错误提示是 缺少CMake&#xff08;CMake must be installed to build the following extensions: dlib&#xff09; 到官网下载CMake并配置path后又提示…

mysql 相关

第一个 MySQL Community Server&#xff0c;这个不要钱&#xff01; 第二个 MySQL Enterprise 这个要掏钱&#xff0c;不过可以打电话咨询问题&#xff0c;也就是电话技术支持。 第三个 MySQL Cluster&#xff0c;这个单独是没法用的&#xff0c;要在1或2的基础上用。当然用来平…

计算机图形学N次Bezier曲线绘制的理解及代码(基于OpenGL和vc)

二次Bezier曲线 三次Bezier曲线 n次Bezier曲线 的函数 double B(int n,int i,float t){int sum1;if(in||i0) return pow(t,i)*pow(1-t,n-i);int j;for(jn-i1;j<n;j)sum*j;for(j1;j<i;j)sum/j;return sum*pow(t,i)*pow(1-t,n-i); } 主要步骤&#xff1a; 1.通过init()函…

记一些Matlab的常用语句

&#xff08;1&#xff09;得到mn的1随机分布的矩阵 arand(3,4); >> a(a>0.5)-(a<0.5); 得到1随机分布的34的矩阵如下&#xff1a; &#xff08;2&#xff09;删除矩阵中某列所有元素&#xff08;不&#xff09;等于x的行&#xff0c;删除矩阵中某行所有元素&…

c# 正则表达式中的一些解决方案

现在正在做一个语义提取 比如从一个类中提取所有public的内容 1.保证输入字符串是一个合法的类&#xff0c;以class xxxxx{开始 &#xff0c;以 };结束 2.保证每一个权限(public,private等&#xff09;都是在新的一行开始 ^public\:([\w\W])?((^\w\:)|(;\z)) 最后一行表示&a…

有些笔记本硬盘插入硬盘盒无法识别的问题

解决办法&#xff1a;换上usb接口&#xff0c;舍弃esata, 重新上电&#xff0c;就能识别了