问题描述是这样的:
我写了个程序叫APP,编译生成APP.exe
他是支持命令行启动的,start and load 是我定义的命令行选项
首先运行APP -start,启动一个APP实例 APP Instance1
然后再运行 APP -load 启动第2个实例 APP Instance2,它要做的事情是把前面的实例APP Instance1的一个成员类对象downcast成它的某个子类对象,然后APP Instance2就注销掉了以上就是需求,大家有什么好的办法,可以让一个进程的一个实例触发另外一个同名进程实例,使其去修改它的某些类对象or成员,要实时的请教,50分请教,关注即有分
我写了个程序叫APP,编译生成APP.exe
他是支持命令行启动的,start and load 是我定义的命令行选项
首先运行APP -start,启动一个APP实例 APP Instance1
然后再运行 APP -load 启动第2个实例 APP Instance2,它要做的事情是把前面的实例APP Instance1的一个成员类对象downcast成它的某个子类对象,然后APP Instance2就注销掉了以上就是需求,大家有什么好的办法,可以让一个进程的一个实例触发另外一个同名进程实例,使其去修改它的某些类对象or成员,要实时的请教,50分请教,关注即有分
解决方案 »
- WdatePicker在用户控件里如何获取文本框值,请高手请教!!!
- josn数据实现超连接
- 窗体如何隐藏
- 大家,都来看一下,瞧一瞧,这个用哪种方法做更好呢?谢谢!
- WinForm里的DateGrid获取行,列的语句怎么写?
- 为什么这样不行?
- C#的一个程序里是否可以这么做?
- 这种情况下用哪种加解密码方法比较好?
- 请问流行的软件,有用.net开发的吗?
- 如果今天老板就把你从程序员提升到项目经理,你的压力和感觉会是如何??
- InstrumentaionManager在运行时可否多次publish有同一个名字的类对象?
- 我在写一个Log类,该Log类可能被其他类调用来写日志, 日志里我想记录调用方的类名,怎么做呢?不想传this指针做参数
怎么向第一个进程发通知啊,第一个进程又如何来写,才可以接受到通知捏?
Welcome discussion~
using System.Windows.Forms;
using System.Threading;namespace WindowsApplication1
{
static class Program
{
[STAThread]
static void Main(String[] argv)
{
//
// 如果传入特定的参数,则打开命名事件,发通知后即刻退出
//
if (argv.Length > 0 && argv[0].ToUpper().Contains("-LOAD"))
{
EventWaitHandle e = EventWaitHandle.OpenExisting("MyPopUpEvent");
if(e != null) e.Set();
return;
} Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;namespace WindowsApplication1
{
public partial class Form1 : Form
{
// 创建一个命名事件
EventWaitHandle m_PopUpEvent = new EventWaitHandle(false, EventResetMode.AutoReset, "MyPopUpEvent");
public Form1()
{
InitializeComponent();
//
// 分配一个线程用于侦听命名事件
//
ThreadPool.RegisterWaitForSingleObject(
m_PopUpEvent,
delegate { OnPopUpEventFired(); },
null,
-1,
false);
}
void OnPopUpEventFired()
{
// 每收到一次事件通知,改变窗口标题
if (this.InvokeRequired) { this.Invoke(new MethodInvoker(OnPopUpEventFired)); }
else { this.BackColor = Color.PeachPuff; this.Text = this.Text + " PoppedUp"; }
}
}
}
EventWaitHandle能传递参数到另一个进程么?
怎么传呢?
gomoku
EventWaitHandle能传递参数到另一个进程么?
怎么传呢?不能。传递数据建议用hdt老大说的方法。也有用Socket或Windows消息的。你自己说的“检查文件”的方法也可以达到目的(虽然有些不足)。
用WCF, 自己做service and client, 不 make sense
用named event,good,但传参就要靠其他介质了,例如文件,数据库等,比较好
socket,也可以,但服务器端要监听,有点小题大作了
用WCF, 自己做service and client, 不 make sense
用named event,good,但传参就要靠其他介质了,例如文件,数据库等,比较好
socket,也可以,但服务器端要监听,有点小题大作了 good advice, when I look backward