请考虑下面的简单代码,然后我会问我的问题。测试代码 - 如何在测试环境中绕过线程
public static void Save(XmlDocument saveBundle)
{
ThreadStart threadStart = delegate
{
SaveToDatabase(saveBundle);
};
new Thread(threadStart).Start();
}
在Visual Studio(2005)使用线程的问题是你不能穿行其中容易(我相信有一种方法来切换,我还没有研究,因为我希望有螺纹一个更简单的方法)。
所以,在现场,我的代码更复杂,然后上面的例子,我们使用一个新的线程,因为它是时间关键,但主体是一样的。最重要的是,它在测试中不是时间关键!
目前,我可能会做一些类似于使用#if debug
的东西,但这样做只是感觉不对 - 我是否正确使用#if或者有更好的方法来解决这个问题?
public static void Save(XmlDocument saveBundle)
{
#if debug
{
SaveToDatabase(parameters);
}
#else
{
ThreadStart threadStart = delegate
{
SaveToDatabase(parameters);
};
new Thread(threadStart).Start();
}
#endif
}
}
虽然我卡在.NET 2.0我很感兴趣,从.NET 20起任何版本(我相信有一天我会离开侏罗纪时期并加入其他人)
bool与条件几乎完全相同 - 并且仅增加了一点额外的头部。 –
是的,的确如此。我只是提出了这样的选择,因为问题的作者对预处理器条件感到不舒服。 –