kriasoft / amibroker

AmiBroker .NET SDK - An open source plug-in project template and community plug-ins for AmiBroker
Apache License 2.0
70 stars 80 forks source link

Release() in Plugin.cs never been called #6

Open lwhuang opened 9 years ago

lwhuang commented 9 years ago

Release() in Plugin.cs never been called, so when I close AB, it's not really closed, the plugin and AB instance still in task list

triforcely commented 6 years ago

One of the users noticed that this problem happens when Broker OLE object is accessed (atleast that's what I think this object is).

Anyway, I use a workaround in my plugin where I simply watch AmiBroker process' (Broker.exe) window handle and when it becomes 0x0 I call "System.Environment.Exit(0)" (I assume that if AmiBroker closed it's window, my plugin should be disposed). Far from ideal but works for now.

In the distant future I plan to listen for WM_CLOSE event of AmiBroker window instead of polling process continuously and then I will probably contribute this to the project.

n1ghthawk commented 4 years ago

One of the users noticed that this problem happens when Broker OLE object is accessed (atleast that's what I think this object is).

Anyway, I use a workaround in my plugin where I simply watch AmiBroker process' (Broker.exe) window handle and when it becomes 0x0 I call "System.Environment.Exit(0)" (I assume that if AmiBroker closed it's window, my plugin should be disposed). Far from ideal but works for now.

In the distant future I plan to listen for WM_CLOSE event of AmiBroker window instead of polling process continuously and then I will probably contribute this to the project.

Hi, have you by any chance implemented a solution to this issue?

triforcely commented 4 years ago

@n1ghthawk only what I described above, which is monitoring of the window handle and exiting when I detect that it became 0x0. It was good enough solution for me. Unfortunately, I've lost the source code so I can't give you the snippet.

n1ghthawk commented 4 years ago

@n1ghthawk only what I described above, which is monitoring of the window handle and exiting when I detect that it became 0x0. It was good enough solution for me. Unfortunately, I've lost the source code so I can't give you the snippet.

@triforcely thanks for replying. If I figure out a way I will post it here.