C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.6938 の関連記事表示

<< 0 >>
■6938  Re[1]: 行数、ステップ数
□投稿者/ επιστημη -(2006/09/28(Thu) 17:38:14)

    分類:[.NET 全般] 

    質問の意図が掴めません。
    「エディタの左端に行番号を表示するには?」
    ということですか?

記事No.6934 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■6938  スレッド生成
□投稿者/ 太郎(初心者) -(2007/08/27(Mon) 17:44:00)

    分類:[C#] 

    どなたか教えてください!

    スレッドを作成し、作成したスレッドで行う処理のメソッドを以下のように記述しました。

    Thread AThred = new Thread(new ThreadStart(method));
    AThread.Start();

    このようにした場合、methodのオーバーロードはありませんと言われてしまいました。

    メソッド(method)は、public void method(long aaa, long bbb)とパラメータを渡しています。

    いろいろなサンプルを見ると、パラメータがないサンプルが多いのですが、
    パラメータがあると作成したスレッドでは処理ができないのでしょうか?

    どなたか、よろしくお願いいたします。


親記事 /過去ログ17より / 関連記事表示
削除チェック/

■6941  Re[1]: スレッド生成
□投稿者/ シャノン -(2007/08/27(Mon) 17:55:11)
    No6938 (太郎(初心者) さん) に返信
    > いろいろなサンプルを見ると、パラメータがないサンプルが多いのですが、
    > パラメータがあると作成したスレッドでは処理ができないのでしょうか?

    作成したスレッドで処理ができないというより、コンパイルさえできないわけですから、スレッドが作成できませんよね。
    ThreadStartデリゲートのコンストラクタ引数には、ThreadStartデリゲートと同じシグネチャ(引数及び戻り値の型が同じ)メソッドを渡さなければなりません。
    具体的にどういうメソッドを使うべきかは、MSDNをご覧ください。
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6944  Re[2]: スレッド生成
□投稿者/ 太郎(初心者) -(2007/08/27(Mon) 19:09:48)
    以下のように変更しましたが、

    Thread AThred = new Thread(new ParameterizedThread(method));

    同じエラーとなりました。

    困りました・・・。

記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6946  Re[3]: スレッド生成
□投稿者/ シャノン -(2007/08/27(Mon) 19:55:06)
    No6944 (太郎(初心者) さん) に返信
    > 以下のように変更しましたが、
    >
    > Thread AThred = new Thread(new ParameterizedThread(method));
    >
    > 同じエラーとなりました。

    同じことです。
    ParameterizedThreadStartコンストラクタには、ParameterizedThreadStartと同じシグネチャのメソッドを渡さなければなりません。
    ThreadStartのシグネチャは何ですか? ParameterizedThreadStartのシグネチャは何ですか? methodのシグネチャはそれらと一致していますか?
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6950  Re[4]: スレッド生成
□投稿者/ 倉田 有大 -(2007/08/27(Mon) 20:43:26)
    public void method()

    とりあえず、引数が無いメソッドのスレッドの作成に挑戦されてはいかがでしょう?
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6952  Re[5]: スレッド生成
□投稿者/ 倉田 有大 -(2007/08/27(Mon) 20:48:58)
    No6950 (倉田 有大 さん) に返信
    > public void method()
    >
    > とりあえず、引数が無いメソッドのスレッドの作成に挑戦されてはいかがでしょう?

    ぐぐると、引数の戻り値のあるメソッドのスレッドは作成できないとありますね。
    何か方法があるのかもしれませんが。
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6954  Re[6]: スレッド生成
□投稿者/ 太郎(初心者) -(2007/08/27(Mon) 21:12:57)
    引数の戻り値はvoidにしてなくしました。

    ただ、INパラメータは指定したいんですけど・・・。
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6956  Re[7]: スレッド生成
□投稿者/ 渋木宏明(ひどり) -(2007/08/27(Mon) 22:25:24)
>
    > ただ、INパラメータは指定したいんですけど・・・。

    引数を1つだけ受け取るメソッドをスレッドプロシージャとして呼び出すことは可能です。

    ただし、引数型は object 型のみです。逆に言えばどんな型でも渡せますが、スレッドプロシージャ内で適切な型にキャストしなければなりません。

    要するに、スレッドプロシージャとして利用可能なメソッドは以下の2種類ということです。

    void ThreadProc();

    void ThreadProc(object param);

    # こういった情報は漫然と検索サイトにお伺いを立てるのではなく、ヘルプ=MSDN Library から得るべきです。

    仮にスレッドプロシージャに long 型のパラメータを1つ与えたいなら、スレッドプロシージャは

    void ThreadProc(object param)
    {
    long a = (long)paran;

    // 必要な処理
    }

    のようになります。

    これを

    Thread workerThread = new Thread(new ParameterizedThread(ThreadProc));

    long param = 100;
    workerThread.Start(param);

    のように呼び出します。

    複数パラメータを同時に渡したい時は、引き渡したいパラメータをすべて格納する適当なクラスを作って、それをパラメータとして渡せばよいです。
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6966  Re[8]: スレッド生成
□投稿者/ 太郎(初心者) -(2007/08/28(Tue) 09:46:51)
    回答ありがとうございました。

    皆様の意見を参考にして調べなおしてみます。

    ありがとうございました。
記事No.6938 のレス /過去ログ17より / 関連記事表示
削除チェック/

■6967  Re[9]: スレッド生成
□投稿者/ 太郎(初心者) -(2007/08/28(Tue) 09:47:50)

    > 回答ありがとうございました。
    >
    > 皆様の意見を参考にして調べなおしてみます。
    >
    > ありがとうございました。
記事No.6938 のレス / END /過去ログ17より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -