- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
更高效开发
DEV353.NET Framework 更高效开发;Why This Talk? ;WinCV;WinCV;转到定义: Visual Studio 2005;Visual Studio 2005代码定义窗口(Code Definition Window);WinDiff;隐藏速度;多工程启动;链接文件;解决方案目录;外部工具集成;将警告视为错误 ;可拖拽的对象;Imports System.ComponentModel
Public Class MyDataAccess
Inherits Component
End Class
;矩形选择;文档大纲;搜索隐藏文本;条件编译;事件访问器;事件访问器;事件访问器;事件访问器;Windows 窗体透明;Windows 窗体透明;线程命名不是必须,但是对于debug非常有用
;线程名断点 (.NET 1.1);线程名中断 (.NET 2.0);结束进程;public class WorkerThread : IDisposable
{
protected Thread m_ThreadObj;
protected bool m_EndLoop;
protected Mutex m_EndLoopMutex;
protected bool EndLoop
{
set
{
m_EndLoopMutex.WaitOne();
m_EndLoop = value;
m_EndLoopMutex.ReleaseMutex();
}
get
{
bool result = false;
m_EndLoopMutex.WaitOne();
result = m_EndLoop;
m_EndLoopMutex.ReleaseMutex();
return result;
}
}
public WorkerThread()
{
m_EndLoop = false;
m_ThreadObj = null;
m_EndLoopMutex = new Mutex();
};public class WorkerThread : IDisposable
{
public void Start()
{
m_ThreadObj = Thread.CurrentThread;
int i = 0;
while(EndLoop == false)
{
//do work here
}
}
//Kill is called on client thread - must use cached thread object
public void Kill()
{
Debug.Assert(m_ThreadObj != null);
if(m_ThreadObj.IsAlive == false)
return;
EndLoop = true;
//Wait for thread to die
m_ThreadObj.Join();
if(m_EndLoopMutex != null)
m_EndLoopMutex.Close();
}
//Rest of WorkerThread
;编码标准 ;导入/导出设置;导入/导出设置;语言版本;接口分解与设计;这是好的设计么?;这是好的设计么?;平衡模块大小与集成度;从可重用的角度考虑接口分解问题
例如:“狗”接口
需求:
叫
捡
户口号
打过预防针;可以这样定义 IDog
这种设计并没有很好的分解接口
Bark() 和 Fetch() 的关联性更强;更好的分解方式;public interface IMammal{ void ShedFur(); void Lactate();}
public interface IDog : IMammal{ void Fetch(); void Bark();}
public interface ICat : IMammal{ void Purr(); void CatchMouse(
文档评论(0)