DLL数据共享问题.

qugui 2006-01-06 05:00:45
我自己写了一个DLL用gacutil放到C:\WINDOWS\assembly后.
虽然实现了DLL的全局化:
但我用了下面两种方法:

int i=0;
public string GetRes()
{
i++;
if(res!=null)
{
return res;
}
else
{
return i.ToString();
}
}
static int i=0;
public static string GetRes()
{
i++;
if(res!=null)
{
return res;
}
else
{
return i.ToString();
}
}
用两个程序分开调用的时候都是从0开始.
请高人指点我要怎么样写才能使得多个程序调用该DLL时能够共享数据.
即一个程序先调用,运行到了10,后面的调用程序就是从10开始,而不是从0开始.
...全文
180 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidong6 2006-01-07
  • 打赏
  • 举报
回复
如果是比较少的数据可以通过注册表, 大点的数据使用文件也可. 关键代码部分使用Lock
guopeng_028 2006-01-07
  • 打赏
  • 举报
回复
学习一下
alanzhou 2006-01-07
  • 打赏
  • 举报
回复
Singleton模式
diandian82 2006-01-06
  • 打赏
  • 举报
回复
这个还没有研究过,先mark
davidcao 2006-01-06
  • 打赏
  • 举报
回复
想通过这种全局组件的调用的方式无法达到你要的目的,因为你对程序集调用的机制完全搞错!
当一个程序要调用程序集的是,在这个进程内会创建程序集的副本,然后协同工作。
换句话,一个程序集在被多个程序调用时的多个副本是互相独立的,彼此互不干涉!
如果要实现你的目的,希望重新考虑软件的结构:
方案一:创建一个服务程序,2个不同的程序向服务程序发送请求,获得各自的结果!
方案二:改写共享的程序集,第一个程序调用的结束的时候后把自己的i 写入文件,在被第二个程序调用的时候 从文件读取i值!
注:方案一的实现难度远远小于方案二,在方案二中,将会碰到文件访问冲突的问题。要花很大的力气才能解决哦~~~!

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧