相关疑难解决方法(0)

如果我在Try块中返回一个值,那么finally语句中的代码会触发吗?

我正在为一位朋友审查一些代码,并说他在try-finally块中使用了一个return语句.即使try块的其余部分没有,Finally节中的代码是否仍会触发?

例:

public bool someMethod()
{
  try
  {
    return true;
    throw new Exception("test"); // doesn't seem to get executed
  }
  finally
  {
    //code in question
  }
}
Run Code Online (Sandbox Code Playgroud)

.net c# exception-handling try-catch

228
推荐指数
7
解决办法
7万
查看次数

如果锁定的对象内部发生异常,它是否会保持锁定状态?

在ac#threading应用程序中,如果我要锁定一个对象,让我们说一个队列,如果发生异常,该对象是否会保持锁定状态?这是伪代码:

int ii;
lock(MyQueue)
{
   MyClass LclClass = (MyClass)MyQueue.Dequeue();
   try
   {
      ii = int.parse(LclClass.SomeString);
   }
   catch
   {
     MessageBox.Show("Error parsing string");
   }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,catch之后的代码没有执行 - 但我一直想知道锁是否会被释放.

.net c# multithreading locking exception

77
推荐指数
6
解决办法
4万
查看次数

如何在不使用Timer的情况下在Windows服务中进行循环

我希望每隔10秒从Windows服务(使用C#和.NET完成)调用Business层方法.但是,我不想使用Timer_Elapsed事件,因为如果第一个线程/进程仍在运行,它将启动另一个线程/进程.我只需要一个单线程方法,因为对同一个Business方法的多次调用会产生不必要的复杂性.

所以我在on_start中添加了一个do-while循环.我知道这不是正确的方法,因为它会产生这个过程,如果服务被关闭,它就会成为一个孤儿.

我该如何处理这个问题?

此致,Chak

c# windows-services

23
推荐指数
1
解决办法
3万
查看次数