c# 多线程同时执行,调用同一个公共方法处理返回结果会错乱!

例如:公共方法
//公共方法
public int add(int i;int j)
{return i+j;}

方法1
public void a()
{add(1,2);}
方法2
public void b()
{add(1,3);}

注:方法add 与a,b不在同一个类下面。是通过同wcf连接调用的。
返回结果:a可能会得到b方法传入参数的结果。

有说用队列那样的话与同步调用就没什么优势了。

第1个回答  推荐于2016-03-08
public int add(int i;int j)
{
    lock(this)
    {
        return i+j;
    }
}

本回答被提问者和网友采纳

C# 同时调用10个方法(10次数据库访问,不同的数据库) 合并返回的结果,然 ...
3、何为“合并”? 同样的数据格式的数据进行累加?还是将不同的表合并成一个字段超级多的“大表”?如果10个查询返回同样格式的表数据,那么可以累加, (一般ADO.NET查询的都是DATATABLE),假设查询出dt1 -dt10 共10个datatable var dt = new DataTable(); \/\/最终结果foreach(Datarow row i...

C#异步调用,界面假死
方法如下:lblStatus.Text = "执行中,请稍候……"; Func<int> longTask = new Func<int>(delegate(){ \/\/ 模拟长时间任务 Thread.Sleep(2000); \/\/ 返回任务结果:5 return 5;});\/\/ 发起一次异步调用,实际上就是在.net线程池中执行longTask\/\/ 这时由于是其它线程在工作...

...C与Java的共性、C++与 Java共性。请详细的分析一下。谢谢...
运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(...

相似回答