摘要: C# 2.0 为了线程安全,不充许子线程直接访问窗体中的控件如果在子线程中直接访问说窗体控件,编译器会提示,控件不是由该线程创建的.那么在子线程中如何访问窗体中的控件呢?在窗体的构造函数中加入这一句pdfControl.CheckForIllegalCrossThreadCalls = false;子线程就可以直接访问窗体中的控件了,不过这样线程是非安全的.而默认Control.CheckForIllegalCrossThreadCalls=true;(捕获线程错误调用)这时可以用Invoke如下:usingSystem;usingSystem.Collections.Generic;usin 阅读全文
posted @ 2011-07-20 22:23 ph580 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 实在的,我最初打算做的事情和本文主要讨论的内容毫不相关。那时,我第一次发现我需要在.NET中计算一个圆的面积,当然,首先需要一个pi(π)的精确值。System.Math.PI用起来倒是很方便,但它只提供了20位的精度,我不禁为计算的精度而担心(其实21位的就可以绝对令我感到舒服)。所以和其他任何称职的程序员一样,我忘记了真正需要解决的问题,而埋头写出了一个自己喜欢的可以算出任意位小数的π值的程序。最终的结果如图1。 图1. 计算Pi值的程序耗时操作(Long-Running Operations)的进度虽然大多数的程序不需要计算pi的值,但是很多的程序都需要进行一些耗时的操作,比如打印、调用 阅读全文
posted @ 2011-07-20 22:22 ph580 阅读(259) 评论(0) 推荐(0) 编辑