【使い方】
オブジェクト取得時の非同期コールバックパラメータクラスを用いてパラメータを渡すサンプルです。
// parentForm は、非同期メソッドの親となるForm
// Args は、受け渡すパラメータオブジェクト
// EndMethod は、非同期終了(Callback)メソッド
// AfterReturnValueMethod は、非同期完了後に呼び出されるコールバックメソッド(AfterCallbackObjectHandler)
// 非同期開始時に受け渡すパラメータを設定する
object asyncState = new AsyncGetObject( parentForm, Args, EndMethod
, new AfterCallbackObjectHandler( AfterReturnValueMethod ))
非同期完了時に呼び出されるメソッド内でパラメータを取得するサンプルです。
// ar は、非同期操作のステータス( System.IAsyncResult )
// IAsyncResult インターフェース AsyncState プロパティの値を取得して、該当クラスに cast する
AsyncGetObject agv = (AsyncGetObject)ar.AsyncState;
オブジェクト取得時の非同期コールバックパラメータクラスのサンプルです。
/// <summary>
/// オブジェクト取得時の非同期コールバックパラメータクラス
/// </summary>
public class AsyncGetObject
{
private System.Delegate m_EndMethod = null; // 値取得メソッド
private System.Delegate m_AfterMethod = null; // 後処理メソッド
private System.Windows.Forms.Form m_Parent = null; // ベースとなるForm
private object m_Args = null; // 後処理メソッドに渡す引数
/// <summary>
/// オブジェクト取得時の非同期コールバックパラメータクラスの新しいインスタンスを初期化します。
/// </summary>
public AsyncGetObject()
{
}
/// <summary>
/// オブジェクト取得時の非同期コールバックパラメータクラスの新しいインスタンスを初期化します。
/// </summary>
public AsyncGetObject( System.Windows.Forms.Form parent, object args, CallbackObjectHandler endMethod
, AfterCallbackObjectHandler afterMethod )
{
m_Parent = parent;
m_Args = args;
m_EndMethod = endMethod;
m_AfterMethod = afterMethod;
}
/// <summary>
/// スレッド処理のベースとなるFormを取得または設定します。
/// </summary>
public System.Windows.Forms.Form Parent
{
get { return m_Parent;}
set { m_Parent = value;}
}
/// <summary>
/// 値取得後のメソッドを取得または設定します。
/// </summary>
public System.Delegate EndMethod
{
get { return m_EndMethod;}
set { m_EndMethod = value;}
}
/// <summary>
/// 後処理メソッドを取得または設定します。
/// </summary>
public System.Delegate AfterMethod
{
get { return m_AfterMethod;}
set { m_AfterMethod = value;}
}
/// <summary>
/// 引数となるオブジェクトを取得または設定します。
/// </summary>
public object Args
{
get { return m_Args;}
set { m_Args = value;}
}
}
|