Thread を簡単に使う。
引数取れないしめんどいよねっていう何か。
class ThreadHelper { private readonly Delegate _execute; private readonly Delegate _callback; private object[] _args; public ThreadHelper ( Delegate execute ) : this( execute, null ) { } public ThreadHelper ( Delegate execute, Delegate callback ) { _execute = execute; _callback = callback; } public void Invoke( params object[] args ) { _args = args; Thread thread = new Thread( Execute ); thread.Start(); } void Execute() { if (_callback.Method.GetParameters().Length != 0) { _callback.DynamicInvoke( result ); } else { _callback.DynamicInvoke(); } } }
使い方。
void ExecuteThread() { ThreadHelper<string> helper = new ThreadHelper<string>( new Func<string, string>( Target ), mes => MessageBox.Show( mes ) ); helper.Invoke( "message" ); } string Target (string source) { //なんか処理 return source.ToUpper(); }