更高效开发
隐藏速度
自定义自动隐藏速度
工具|选项|常规
多工程启动
在一个解决方案中同时启动多个项目
同一个 debug 会话 (Start button, F5)
Solution|Properties|Startup End RaiseEvent
End Event
End Class
事件访问器
使用 “正常的” 事件追加语法
MyPublisher publisher = new MyPublisher();
+= new EventHandler(OnMyEvent);
void OnMyEvent(object sender,Eventargs args)
{...}
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim publisher As New MyPublisher()
AddHandler , AddressOf OnMyEvent
Sub OnMyEvent(ByVal sender As Object, ByVal args As Eventargs)...
End Sub
Windows 窗体透明
所有的可见倥件都有透明属性
0-100%
可视化效果
Windows 窗体透明
渐暗窗体
组合 计时器 和Close 事件
线程命名不是必须,但是对于debug非常有用
Imports
Dim currentThread As Thread =
Dim threadName As String = "Main UI Thread"
= threadName
Thread Name
线程名断点 (.NET )
用线程名作为中断条件
设置条件中断
使用完全限定类型
线程名中断 (.NET )
设置断点过滤
默认禁用
工具|选项|调试|常规|起用断点过滤
结束进程
不要调用Abort()
线程需要被清除
Abort() 不能彻底清除
线程方法需要检查标志
保护性的互斥标志
Kill() 方法需要设置标志,并等待进程终结
Abort() 还有一个缺陷
线程可能在catch{}中进行未定义的处理
public class WorkerThread : IDisposable
{
protected Thread m_ThreadObj;
protected bool m_EndLoop;
protected Mutex m_EndLoopMutex;
protected bool EndLoop
{
set
{
();
m_EndLoop = value;
();
}
get
{
bool result = false;
();
result = m_EndLoop;
();
return result;
}
}
public WorkerThread()
{
m_EndLoop = false;
m_ThreadObj = null;
m_EndLoopMutex = new Mutex();
}
public class WorkerThread : IDisposable
{
public void Start()
{
m_ThreadObj = ;
int i = 0;
while(EndLoop == false)
{
//do work here
}
}
//Kill is called on client thread - must use cached thread object
public void Kill()
{
(m_ThreadObj !=
更高效开发 来自淘豆网m.daumloan.com转载请标明出处.