Reputation: 716
I've got a winforms application that is set up in the following manner: 2 buttons, a textbox, an class object MX with a collection K as its member, function X and another function, Y.
I'd like to call function X through a worker thread in such a way that:
What would be the most efficient implementation of the above environment ?
Upvotes: 0
Views: 58
Reputation: 134247
When you press button 1, you can call X using BackgroundWorker
to run it in a separate thread. Then set a variable (or grey out Button 1) such that the user cannot run X again.
X can write to its own collection while it processes the DB. Then it can replace an instance variable with this collection. By only doing a single replacement you can avoid synchronization problems between X and the UI thread.
After X completes, you can use a BackgroundWorker
event to let the UI know the operation is complete. Then you reset the same variable (or ungrey the button) to let the user know they can now run X again - if necessary.
What do you think? Does that help at all?
Upvotes: 1