关于 SingleTon 了解一点!
但是我想实现跨程序的SingleTon,请问如何实现! 有个程序 A.exe 调用 Common.dll, Common.dll 就一个简单的类,代码如下:
class C
{
public static readonly C Instance = new C();
private count;
private C ()
{
count = 0;
} public GetCount()
{
count ++;
return count;
}
} 然后 A.exe 的代码很简单,就是调用 GetCount 方法.
如: Common.C.Intance.GetCount(); 再写一个B.exe,也是调用GetCount 方法. 把 A.exe, Common.dll, B.exe 放再同一个文件夹里面. 运行A.exe 得到结果为1
再运行B.exe得到的还是1 而不是2
请问如何在两个应用程序之间实现一个SingleTon的组件,谢谢!
但是我想实现跨程序的SingleTon,请问如何实现! 有个程序 A.exe 调用 Common.dll, Common.dll 就一个简单的类,代码如下:
class C
{
public static readonly C Instance = new C();
private count;
private C ()
{
count = 0;
} public GetCount()
{
count ++;
return count;
}
} 然后 A.exe 的代码很简单,就是调用 GetCount 方法.
如: Common.C.Intance.GetCount(); 再写一个B.exe,也是调用GetCount 方法. 把 A.exe, Common.dll, B.exe 放再同一个文件夹里面. 运行A.exe 得到结果为1
再运行B.exe得到的还是1 而不是2
请问如何在两个应用程序之间实现一个SingleTon的组件,谢谢!
解决方案 »
- 请教:为什么我的Array没有Copy()方法??急!!
- System.Windows.Controls 与 System.Windows.Forms有什么不同
- 打印机速度问题?问题有点乱
- C#程序怎么做注册码?
- 关于控件的一个小小问题,请各位高手来解决
- 怎么得到光标处的字符?
- DataGrid中的错误“未能在设计视图中打开。在<%..."值"...%块中,以不同方式将值括起来。”
- 如何将一个contextMenuStrip关联到一个控件上?急!
- php中的echo 在C#中如何实现?
- 有没有关于C#做游戏的网站啊?
- evc获得IMEI类,如何用c#实现啊。哪位高人翻译一下。需要用引入cellcore.lib
- 一个关于给session付0的问题
但是我的只是在同一台计算机上啊,用Remoting开销太大吧?
请问有谁知道什么好的方法吗?
avisnet(第十维度)
请问你们有实现的例子吗?发个给我!谢谢!
[email protected]
#include <stdio.h>
#include <conio.h>#define BUF_SIZE 256
TCHAR szName[]=TEXT("MyFileMappingObject");
TCHAR szMsg[]=TEXT("Message from first process");
int szInt = 999;void main()
{
HANDLE hMapFile;
LPCTSTR pBuf; hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // max. object size
BUF_SIZE, // buffer size
szName); // name of mapping object
if (hMapFile == NULL || hMapFile == INVALID_HANDLE_VALUE)
{
printf("Could not create file mapping object (%d).\n", GetLastError());
return;
}
pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to mapping object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
BUF_SIZE);
if (pBuf == NULL)
{
printf("Could not map view of file (%d).\n", GetLastError());
return;
}
CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg));
getch(); UnmapViewOfFile(pBuf); CloseHandle(hMapFile);
} //建立第二个工程#include <windows.h>
#include <stdio.h>
#include <conio.h>#define BUF_SIZE 256
TCHAR szName[]=TEXT("MyFileMappingObject");void main()
{
HANDLE hMapFile;
LPCTSTR pBuf; hMapFile = OpenFileMapping(
FILE_MAP_ALL_ACCESS, // read/write access
FALSE, // do not inherit the name
szName); // name of mapping object
if (hMapFile == NULL)
{
printf("Could not open file mapping object (%d).\n", GetLastError());
return;
}
pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to mapping object
FILE_MAP_ALL_ACCESS, // read/write permission
0,
0,
BUF_SIZE);
if (pBuf == NULL)
{
printf("Could not map view of file (%d).\n", GetLastError());
return;
}
MessageBox(NULL, pBuf, TEXT("Process2"), MB_OK); UnmapViewOfFile(pBuf); CloseHandle(hMapFile);
}
参看
http://dev.csdn.net/article/15/15598.shtm
但是 protected virtual void DefWndProc (ref Message m) 方法是在 System.Windows.Forms
中的.
现在我一个是 Windows服务,一个是WinForm,如何传递消息啊?