Yeah I know its dodgy , which is why im posting it here trying to find an alternative ( one of the threads lock when a resize happens and stops rendering) .
I had a read of the Close bug and it is not the same thing as I am not removing anything though it may relate. The problem I have is I cant stop the animation ( or do anything) as I dont even get the close event. If i got the event I could destroy everything. I have read some C++ posts saying DirectX can interfere with WM_Close events and I think something like that is going on. Anyone have any bright ideas ? Ben > -----Original Message----- > From: Moderated discussion of advanced .NET topics. > [mailto:[EMAIL PROTECTED]]On Behalf Of Gary Leighton > Sent: Monday, 20 January 2003 11:42 PM > To: [EMAIL PROTECTED] > Subject: Re: [ADVANCED-DOTNET] Controls / DirectX and threading > > > Application.Run creates a message-loop on the current thread. > > I would be suprised if DoEvents will work on the non-UI thread, > but I'm not > sure about this. > > DirectX can have problems with multi-threading when operating full-screen, > but I'm not aware of any problems when working in a window. > > My guess is that the Close window problem is not related to threads. There > is a documented error to do with forms not closing when a child > control that > has focus is removed. Could this be the problem? > > Gary Leighton > > -----Original Message----- > From: Ben Kloosterman [mailto:[EMAIL PROTECTED]] > Sent: 18 January 2003 06:24 > To: [EMAIL PROTECTED] > Subject: [ADVANCED-DOTNET] Controls / DirectX and threading > > > Ok I had a problem when using DirectX 9 to render to a control > that the form > ( actually a subform created from the mainform) would no longer > handle close > events, all other events were handled properly . Looking at all > the managed > DirectX samples they started the rendering loop from main() which > I suspect > is a different thread then the UI thread created by Application.Run , this > is not really practical as the program I want to write is 90% forms. as a > workaround solution starting the rendering as a new thread seemed to work > fine. > > My question is whether this is save as the Rendering and > Application.DoEvents is done on a different thread from the UI. More > specifically does DirectX interfere with the UI thread and does > Application.DoEvents invoke the UI thread. > > Ben Kloosterman > > PS; code is below > > public virtual void Run() > { > try > { > if ( Init != null) > Init(this , new EventArgs()); > MethodInvoker mi = new MethodInvoker(mainloop); > mi.BeginInvoke(null , null ); > } > // catch > } > > private void mainloop() > { > System.Windows.Forms.Control mainWindow = this; > mainWindow.Show(); > while (mainWindow.Created) > { > Application.DoEvents(); > // TODO Get the app's time, in seconds. Skip rendering if no > time elapsed > if (Idle != null) > Idle(this , new EventArgs()); > Application.DoEvents(); > } // while > } > > You can read messages from the Advanced DOTNET archive, unsubscribe from > Advanced DOTNET, or > subscribe to other DevelopMentor lists at http://discuss.develop.com. > > > KSS Ltd > A division of Knowledge Support Systems Group plc > Seventh Floor St James's Buildings 79 Oxford Street Manchester > M1 6SS England > Company Registration Number 2800886 (Limited) 3449594 (plc) > Tel: +44 (0) 161 228 0040 Fax: +44 (0) 161 236 6305 > mailto:[EMAIL PROTECTED] http://www.kssg.com > > > The information in this Internet email is confidential and may be > legally privileged. It is intended solely for the addressee(s). > Access to this Internet email by anyone else is unauthorised. > > If you are not the intended recipient, any disclosure, copying, > distribution or any action taken or omitted to be taken in > reliance on it, is prohibited and may be unlawful. When addressed > to our clients any opinions or advice contained in this Internet > email are subject to the terms and conditions expressed in the > governing engagement letter or contract. > > This email message and any attached files have been scanned for > the presence of computer viruses. However you are advised that > you open any attachments at your own risk. > > > You can read messages from the Advanced DOTNET archive, > unsubscribe from Advanced DOTNET, or > subscribe to other DevelopMentor lists at http://discuss.develop.com. > > You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.
