run a profiler like Allocation Profiler to GotDotNet User Sample: Allocation Profiler
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=36a3e666-6877-4c26-b62d-bfd7cb3154acAnalyzing Memory Leaks Using the .NET Allocation Profiler
http://www.automatedqa.com/techpapers/net_allocation_profiler.aspalso see other tools at:
http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=36a3e666-6877-4c26-b62d-bfd7cb3154acAnalyzing Memory Leaks Using the .NET Allocation Profiler
http://www.automatedqa.com/techpapers/net_allocation_profiler.aspalso see other tools at:
http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx
解决方案 »
- Form怎么强转为DataGridView
- C#+ZedGraph控件画正态分布曲线
- 怎样将数据定时自动导入EXCEL
- 实现局域网语音通话
- treeview中节点编辑、判断右键未选中树节点的问题(UP有分)
- multipage
- 请教用Graphics高速绘图时win桌面图标跟着闪什么原因?
- powerdesigner 的超难问题,高手进 急 急 急 急
- SOS!多帧gif图片处理 多帧就是哪种能动的gif ,我要放大和缩小,但我处理后就只是单帧了即不能动了
- 自定义控件:带button的TextBox的源代码
- .net程序发布,说我的.NetDataOLEDB Provider old……
- 虚拟方法和非虚拟方法如何区别它的执行是固定还是不固定的?
在一个,你用静态变量来同步线程相当不安全,因为有的线程可能因为优先级的问题永远的不到机会来设置变量。
我觉得你应该用信号量、互斥量、事件等来进行线程通信,当一个线程完成任务时,可以进入睡眠状态来等待检测线程分配新的任务。这样比不断产生新县城来的高效、安全。
睡眠状态怎么写 sleep吗?
“检测线程分配新的任务”怎么做啊?
还有一个地方不懂,在下载线程里调用事件也是属于这个线程阿,怎么通知别的线程。我看的书上没有这样的例子阿。
任务可以用特定的数据结构,通过全局变量,或者其他麻烦但安全的方法传递。
同步对象是内核对象,即是说他们是由操作系统管理的,因此不但可以用于县城通信,还可以用于进程通信,只是同一时间只能由一个线程对他有话事权,以此达到同步目的。建议你看一看jeffrey richter的《windows 高级编程指南》,虽然不是讲c#,但对windows的内部机制讲得很清楚,对window编程很有帮助。
对于你目前的问题,你可以先看“县城同步”一章。
至于相应的视线,我相信c#里面一定有。
至于要不要通读全书,你打听一下ms对操作系统有没有重大改变,知道了也告诉我一声,我周围这方面朋友太少。
并且,vs.net的帮助里面没有 线程同步这一章。
另外c#里有lock()函数,他就是为索住变量的阿,比方说静态变量from1.aaa,我用
lock(form1.aaa)
{
form1.aaa="asdf";
}
这样别的线程就不能访问它了,直到它处理完。书上是这样说的。呵呵。
“还可以用于进程通信“,但我看vs.net帮助上说进程间是不可以通信的阿?那不是相当于两个应用程序之间吗? 好像.net是用 remoting进行的。