Has somebody made a surveillance thread which doesn't die?

  • Thread starter lagu2653 via DotNetMonster.com
  • Start date
L

lagu2653 via DotNetMonster.com

I have a log-in window application. When the user presses the cancel button
it kills another window by it's name and then it exits. The problem is that
if somebody kills the log-in window by terminating the process in the task
manager the other window is not killed.

One solution might be to have a surveillande thread which doesn't die when
the mother-thread dies, and can't be killed in the task manager. As soon as
the log-in window thread stops responding to surveillance messages it will
kill the other window and then exit.

Is this possible?

I've also tried to have a form which spawns another form, but in the Task
Manager there is only one entry (PasswordDialog.exe). If you kill this
process everything dies and the window which I want to kill when the log-in
window dies is not killed.
 
I

Ignacio Machin \( .NET/ C# MVP \)

Hi,

If somebody kills your "manager" app from the task manager I think it
receive a signal and only if no response is receive the scheduler simply
kill it.
In any case if the process is forcibly terminated you have no opportunity
to do nothing and there is nothing you can do about.
 
P

Peter Duniho

lagu2653 said:
I have a log-in window application. When the user presses the cancel button
it kills another window by it's name and then it exits. The problem is that
if somebody kills the log-in window by terminating the process in the task
manager the other window is not killed.

One solution might be to have a surveillande thread which doesn't die when
the mother-thread dies, and can't be killed in the task manager. As soon as
the log-in window thread stops responding to surveillance messages it will
kill the other window and then exit.

Is this possible?

Sure. Anything is possible, depending only on how much time you want to
put into it and how much of the OS you want to rewrite. :)

That said, your specific idea doesn't sound too hard. But I question
the need for a separate "surveillance" thread that can't be killed in
the task manager. There's no such thing in the OS (you can always stop
a process, and all threads exist within a process), so it would indeed
involve hacking the OS pretty severely to introduce that sort of thing.

IMHO, it would be better to just have the "other window" do the querying
of the login window. Have it send a message to the login window every
half-second or so, asking if it should close. The login window, if it
responds at all, will respond in the negative. That is, it will tell
the other window not to close.

If the user presses the cancel button OR if the login window process is
terminated, the login window simply won't respond to the query. In the
former case, the lack of a response will be by choice, in the latter by
necessity. Either way, the other window won't get a response and will
know to close itself.

Designing it this way means you only have to implement a single
behavior, rather than relying on multiple pieces of code implementing
different algorithms to work well together.

The whole thing sounds a bit house-of-cards-ish (why is this
functionality split into two different processes in the first place?),
but assuming you really want something that does what you're talking
about, I see no need to add yet another process to the mix.

Pete
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top