小编Gur*_*epS的帖子

确保只有一个应用程序实例

可能重复:
创建单实例应用程序的正确方法是什么?

我有一个Winforms应用程序,它通过以下代码启动启动画面:

Hide();
        bool done = false;
        // Below is a closure which will work with outer variables.
        ThreadPool.QueueUserWorkItem(x =>
                                  {
                                      using (var splashForm = new SplashScreen())
                                      {
                                          splashForm.Show();
                                          while (!done)
                                              Application.DoEvents();
                                          splashForm.Close();
                                      }
                                  });

        Thread.Sleep(3000);
        done = true;
Run Code Online (Sandbox Code Playgroud)

以上是主窗体的代码隐藏,并从加载事件处理程序调用.

但是,如何确保一次只加载一个应用程序实例?在主窗体的load事件处理程序中,我可以检查进程列表是否在系统上(通过GetProcessesByName(...)),但是有更好的方法吗?

使用.NET 3.5.

.net c# .net-3.5 winforms

23
推荐指数
2
解决办法
4万
查看次数

使用return退出循环?

如果我写一个for,do或while循环,是否可以使用return关键字来解决这个问题?

例如:

class BreakTest 
{
public static void Main() 
{
  for (int i = 1; i <= 100; i++) 
  {
     if (i == 5) 
        **return;**
     Console.WriteLine(i);
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道return可以用来退出if语句所以我很好奇,因为我从未尝试过(并且无法访问我的软件来编写代码来测试它).

c#

21
推荐指数
2
解决办法
5万
查看次数

构建IDE /编译器所需的概念

在制作IDE(例如SharpDevelop)或编译器/语言解析器时,我需要知道哪些计算机科学主题?我不希望有完整的深度教程列表,只是一个主题列表,这些主题对我有所改进.

我是否正确地认为解析器有一些关于语言的语法/语义的规则,并根据这些规则验证代码?这似乎是一个简单的方法?

谢谢

ide compiler-construction parsing

20
推荐指数
2
解决办法
6860
查看次数

Thread.Sleep()的替代方案,用于模拟暂停

所以Thread.Sleep()很糟糕(http://msmvps.com/blogs/peterritchie/archive/2007/04/26/thread-sleep-is-a-sign-of-a-poorly-designed-program.aspx).

是否有任何建议的替代方法来模拟程序执行中的暂停?比如一个循环?虽然我认为这在初始化变量,检查bool条件等方面涉及很多开销.

谢谢

c#

20
推荐指数
3
解决办法
6530
查看次数

什么是陈旧状态?

我正在阅读维基百科上的对象池模式(http://en.wikipedia.org/wiki/Object_pool),它提到了"危险的陈旧状态".

什么是"陈旧"状态?我知道状态是变量/数据,例如我的字段和属性,但它陈旧或危险陈旧是什么意思?

design-patterns staleobjectstate

19
推荐指数
1
解决办法
2万
查看次数

开始学习边缘检测/图像识别的最佳文章

我参与了一个个人项目,需要相当广泛的边缘检测和图像分割/对象识别知识.

在编写代码之前,我知道规划/理解的重要性,考虑到这一点,开始学习这些计算领域的最佳位置是什么?我理想地寻找在线文章/论文.

谢谢

algorithm image-processing computer-vision edge-detection

18
推荐指数
2
解决办法
4556
查看次数

虚方法表

在讨论密封类时,经常提到术语"虚函数表".究竟是什么?我刚才读到一个方法表(我不记得这个目的的目的)和谷歌/搜索这里带来了C++相关的结果.

谢谢

.net c# virtual vtable

18
推荐指数
2
解决办法
2万
查看次数

元帅出血/参考/价值?

我已经通过参考听说过元帅,按照价值流血和元帅的元帅.这3个有什么区别?我知道这些是在跨appdomains /序列化传输数据时使用的,但不是更多.

c# serialization

18
推荐指数
1
解决办法
7380
查看次数

在此代码示例中,"{0:X2}"的含义是什么?

在下面的代码示例中,{0:X2}含义是什么?这来自MCTS应用程序开发基础书的反思部分(涵盖动态代码等).

foreach(Byte b in body.GetILAsBodyArray())
{
Console.Write("{0:X2}", b);
}
Run Code Online (Sandbox Code Playgroud)

c#

17
推荐指数
1
解决办法
2万
查看次数

哪种类型的例外没有捕获?

很多时候,提到只捕获我可以处理的异常(抛出,包装和/或记录,或执行一些其他操作).

哪些例外无法处理?这是不应该被抓住的意思吗?我知道不应该捕获可能表示对象引用为null的异常,因为它们是编程错误而不是用户激发的.还有其他例子吗?另一个是ExecutionEngineException.

此外,catch块中的操作过程总是在rethrow,wrap/rethrow和log之间吗?是否有需要在catch块中执行某些其他操作的情况?

谢谢

.net c# exception-handling exception

16
推荐指数
2
解决办法
1828
查看次数