C#中的一种方式调用

时间:2009-09-10 15:43:34

标签: c#

我想在C#中实现单向调用方法。我知道在Web服务中我们可以使用ONE Way属性来实现。我已经通过Delegate进行了一些异步调用。如果任何人有一些我可以用于相同的示例代码。

2 个答案:

答案 0 :(得分:4)

好吧,也许最简单的模拟单向调用的方法是将它推送到线程池?

ThreadPool.QueueUserWorkItem(delegate { DoSomeStuff("abc"); });

虽然上面的问题与例外问题有关,但它很容易包装:

(编辑:oops,borked异常处理!修复...)

public static void OneWay(Action action) {
    if (action == null) throw new ArgumentNullException("action");
    ThreadPool.QueueUserWorkItem(delegate {
        try { action(); }
        catch (Exception ex) {
            Trace.WriteLine(ex);
        }
    });
}
...
OneWay(() => DoSomeStuff("abc"));

答案 1 :(得分:0)

您可以在方法调用

中包装异步委托
public void MyOneWay()
{
   //you can replace the anonymous function with any function you define, if you want
   var d = delegate(int a) { Console.Write(a);};
   d.BeginInvoke();
}

注意:这是伪代码。