Pillblast
Pillblast

Reputation: 1221

Wait for method to finish

How can I wait for a method to finish using C#?

Upvotes: 10

Views: 60377

Answers (3)

Shekhar_Pro
Shekhar_Pro

Reputation: 18420

I assume you are asking how to wait for a Code executing on another Thread in your main Thread . For that purpose Thread.Join() method will do what you want.

(A nice tutorial on how to do Multithreading.)

Upvotes: 7

Jon Skeet
Jon Skeet

Reputation: 1499740

Unless you're using multiple threads, execution won't continue in the calling code until the method has completed anyway.

If you are using multiple threads, it really depends on how you're launching the task. For example, you could be using asynchronous delegate execution (foo.BeginInvoke(...)) or the Task Parallel Library, or simply creating a new thread. Each approach has its own way of waiting until the task/thread has completed. Please give us more information and we can help you more, but options may include:

  • Calling EndInvoke on the delegate, passing in the IAsyncResult returned by BeginInvoke
  • Calling Task.Wait (optionally with a timeout)
  • Calling Thread.Join (optionally with a timeout)

Upvotes: 57

mdm
mdm

Reputation: 12630

  1. Call the method.
  2. Wait for it to finish.

Note: Only works for blocking calls.

Upvotes: 10

Related Questions