Re: NSTerminateLater and thread
Re: NSTerminateLater and thread
- Subject: Re: NSTerminateLater and thread
- From: Peter Lübke <email@hidden>
- Date: Sat, 04 Jun 2011 04:47:48 +0200
Besides from the fact I didn't care about the aborted logout, I was
wrong anyway due to bad memory :(
But you can bring up an application modal window after detaching the
secondary thread in applicationShouldTerminate, giving the user
options like cancelling, showing a progress indicator etc..
Repeatedly call runModalSession until the task is finished or the
user cancelled.
This worked fine for me in a similar situation.
I guess a logout will time out anyway if the task takes too long.
Cheers,
Peter
Am 03.06.2011 um 22:23 schrieb Leonardo:
Thank you Kyle,
however, I realize, it's incredible there is no way to execute a
task before
quitting the app. I easily run a task at launch but I can't run a task
before quit. The problem is that the task could a few minutes and
the app
should remain responsive to the user, in the best Mac tradition.
I will struggle myself some day more on this issue. Let's cross the
fingers.
Regards
-- Leonardo
Da: Kyle Sluder <email@hidden>
Data: Fri, 3 Jun 2011 11:35:41 -0700
A: Peter Lübke <email@hidden>
Cc: Leonardo <email@hidden>, Cocoa Developers
<email@hidden>
Oggetto: Re: NSTerminateLater and thread
2011/6/3 Peter Lübke <email@hidden>:
Return NSTerminateCancel when applicationShouldTerminate calls
ExecuteLogOutTask to be performed in a secondary thread.
At the end of your ExecuteLogOutTask method, call something like
[myApplicationDelegate performSelectorOnMainThread:
(logOutTaskDidFinish)
withObject:nil waitUntilDone:NO].
Then, in logOutTaskDidFinish, call NSApplication's -terminate:
method and
set a flag indicating that ExecuteLogOutTask was already executed.
The next time applicationShouldTerminate is called, return
NSTerminateNow if
this flag is has been set so ExecuteLogOutTask is not called
forever.
That's not going to resume the aborted logout.
Leonardo, you will need to either finish your task in the time
allotted by NSTerminateLater, or you will need to abort logout.
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden