c# - how correctly to end all process of program -


my program has event onclosing - hide it. need implement closing of programm - try use context menu of task bar notification item.

code:

    private void formmainform_formclosing(object sender, formclosingeventargs e)     {         //canceling closing form         e.cancel = true;         //hide form          this.windowstate = formwindowstate.minimized;     }      private void toolstripmenuitem1_click(object sender, eventargs e)     {         //hide icon tray         notifyicon.visible = false;         //get current process         process proc = process.getcurrentprocess();         //kill , close programm         proc.kill();     } 

but read little bit, kill() terminate work , "kill" process, think can not normal way close programm - data can destroyed or not stored

also try use proc.closemainwindow(); , proc.close() - no effect on programm - windows closed, process still running.

question: .kill() it's correct way close programm, or ther way it?

you call .close() in menuitem click , set boolean flag onclose handler can check flag , know should really close. lot safer trying kill own process.

private bool onlyhideonclose = true;  private void formmainform_formclosing(object sender, formclosingeventargs e) {     if(this.onlyhideonclose)     {         e.cancel = true;         this.windowstate = formwindowstate.minimized;     } }  private void toolstripmenuitem1_click(object sender, eventargs e) {     this.onlyhideonclose = false;     this.close(); } 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -