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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 >>
■1713  Re[2]: WebClientインスタンスのプーリングについて
□投稿者/ Hirotow -(2007/03/03(Sat) 22:37:58)
>
    質問がわかりにくかったみたいですね。
    すみません。

    Windows.Formsなので当然非同期は使っています(^^;
    そういうことではなく、プログラム全体で同時接続数の管理も兼ねて安全にWebClientを使いまわしたいのです。

    ソリューションを貼り付けるので質問文の補助にしてください。
    http://hcm.wankuma.com/data/cvd20070303a.cab
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1714  Re[3]: WebClientインスタンスのプーリングについて
□投稿者/ 渋木宏明(ひどり) -(2007/03/03(Sat) 23:02:12)
>
    > Windows.Formsなので当然非同期は使っています(^^;

    なら、後は適当にプーリングの仕組みを自作すればいいだけでは?
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1716  Re[4]: WebClientインスタンスのプーリングについて
□投稿者/ Hirotow -(2007/03/03(Sat) 23:20:40)
>
    No1714 (渋木宏明(ひどり) さん) に返信
    >>Windows.Formsなので当然非同期は使っています(^^;
    >
    > なら、後は適当にプーリングの仕組みを自作すればいいだけでは?
    >
    がんばってみます。
記事No.1704 のレス / END /過去ログ10より / 関連記事表示
削除チェック/

■1717  Re[5]: WebClientインスタンスのプーリングについて
□投稿者/ なちゃ -(2007/03/04(Sun) 00:31:48)
    WebClientってプーリングしなきゃならないようなクラスでしたっけ?
    いや試してないのでどの程度差があるかは分かってないんですが…
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1720  Re[6]: WebClientインスタンスのプーリングについて
□投稿者/ 渋木宏明(ひどり) -(2007/03/04(Sun) 06:14:36)
>
    No1717 (なちゃ さん) に返信
    > WebClientってプーリングしなきゃならないようなクラスでしたっけ?

    複数のダウンロードを同時並行に扱うなら、そして、動的にダウンロード数の管理を行いたいなら、プーリングの機構が必要じゃないですか?

    1個の WebClient で、ダウンロードが完了する前に何度も DownloadXXXAsync() 呼び出しが行えるようなつくりになっているなら話は別ですが。

    ちなみに、ここで言うプーリングは SqlConnection のような接続のプールではなく、スレッドプールのような「WebClient のインスタンス」のプールの話だと思います。
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1723  Re[7]: WebClientインスタンスのプーリングについて
□投稿者/ Hirotow -(2007/03/04(Sun) 10:57:30)
>
    > ちなみに、ここで言うプーリングは SqlConnection のような接続のプールではなく、スレッドプールのような「WebClient のインスタンス」のプールの話だと思います。

    そういうことです。

    # ただ、結構仕様は変わりそうです。
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1724  Re[8]: WebClientインスタンスのプーリングについて
□投稿者/ 渋木宏明(ひどり) -(2007/03/04(Sun) 11:18:59)
>
    >>ちなみに、ここで言うプーリングは SqlConnection のような接続のプールではなく、スレッドプールのような「WebClient のインスタンス」のプールの話だと思います。
    >
    > そういうことです。

    であれば、プールの実装自体は簡単なもので十分なはずです。
    List<WebClient> を lock で保護しつつ使う、とか。

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

■1726  Re[9]: WebClientインスタンスのプーリングについて
□投稿者/ aoa -(2007/03/04(Sun) 13:42:06)
    2007/03/04(Sun) 14:11:24 編集(投稿者)

    WebClientをプーリングするのではなく、
    スレッドをプーリングしてその中でWebClientのインスタンスをnewすればいいと思ったのですが、
    非同期のDownloadXXXAsync()を使う、ということでしたね。
    勘違いしていました。すいません。
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1771  Re[10]: WebClientインスタンスのプーリングについて
□投稿者/ 渋木宏明(ひどり) -(2007/03/05(Mon) 23:13:27)
>
    遅レスですが。。。

    > 2007/03/04(Sun) 14:11:24 編集(投稿者)
    >
    > WebClientをプーリングするのではなく、
    > スレッドをプーリングしてその中でWebClientのインスタンスをnewすればいいと思ったのですが、
    > 非同期のDownloadXXXAsync()を使う、ということでしたね。
    > 勘違いしていました。すいません。

    非同期処理(=DownloadXXXAsync())を採用することによって、ダウンロード処理に関しては、コードで明示的にスレッドを起こす必要はなくなります。

    非同期リクエストを行わなくても、どうも WebClient は内部で勝手にスレッドを起こしている気配も感じられます。
    また、WebClient によるセッションにはランタイムでその最大数に制限を課していたはずです。

    なので、ダウンロード処理と、ダウンロードしたコンテンツの処理を分離することで、スレッドの無駄遣いを抑えたり、セッション数の制限からくる無駄なスレッドのブロックを避けられる可能性があります。

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

■1773  Re[11]: WebClientインスタンスのプーリングについて
□投稿者/ Hirotow -(2007/03/05(Mon) 23:39:04)
>
    > なので、ダウンロード処理と、ダウンロードしたコンテンツの処理を分離することで、スレッドの無駄遣いを抑えたり、セッション数の制限からくる無駄なスレッドのブロックを避けられる可能性があります。

    分離。
    面倒なのでコンポジションは好みではないのですが、正論的にはそうすべきですね。

    ほかには、ダウンロードはたぶんリソースを消費しやすい処理だと思うので、使いまわすかその都度破棄するかしなければいけないと。
    あとリジュームなどの割と高度な機能を組み込むとなるとWebClientでは力不足なので(できないことはなさそうだが)、WebRequest/WebResponseでの独自実装(ほとんどどぼんさんとこの流用ですが)も作りたいところです。

    # 花粉症で頭が回らない(泣)
記事No.1704 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1692  ToolTipウィンドウの表示位置変更方法について
□投稿者/ M.K -(2007/03/02(Fri) 19:21:11)

    分類:[C# (Windows)] 

    開発環境:VS2005 (WindowsXP SP2)
    使用言語:C#

    初めて投稿させて頂きます、M.Kと申します。

    現在 .NET Framework2.0 を使用してWindowsアプリケーションを開発しているのですが、
    ToolTipクラスによって表示されるツールチップの表示タイミングは標準のままに、表示位置
    だけ任意に変更したいのですが、どのようにコーディングすれば良いのかが分かりません。

    何方か実現方法をご存知でしたら教えて頂けませんでしょうか?

    ※具体的にはテキストボックスにマウスカーソルを当てて暫く待つと(標準仕様)、テキスト
     ボックスの左下を起点にツールチップを表示(独自仕様)させたいのです。
親記事 /過去ログ10より / 関連記事表示
削除チェック/

■1694  Re[1]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ ダッチ -(2007/03/02(Fri) 21:20:28)
    M.K さん、こんにちは
    ダッチです。

    > ToolTipクラスによって表示されるツールチップの表示タイミングは標準のままに
    ToolTip.Popup イベントで

    > 表示位置だけ任意に変更したいのですが
    ToolTip.Show メソッド を呼んでみてはいかがでしょうか。
    表示位置を指定する引数があります。
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1734  Re[2]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ M.K -(2007/03/05(Mon) 10:16:01)
    No1694 (ダッチ さん) に返信
    
    ダッチさん、お返事ありがとうございます。
    
    開発環境が会社にしかないので、検証とお返事に日を開けてしまい
    申し訳ありません。
    
    > ToolTip.Popup イベントで
    > ToolTip.Show メソッド を呼んでみてはいかがでしょうか。
    
    PopupイベントでShowメソッドを呼ぶように記述した所、再帰的に
    Popupイベントが発生してしまい、最終的にStackOverflowとなって
    しまいます。
    
    private void toolTip1_Popup(object sender, PopupEventArgs e)
    {
       toolTip1.Show("あいうえお", button1, 0, 0);  // ← 0,0は例です。
    }
    
    もし宜しければサンプルコードなどを挙げて頂けないでしょうか?
    
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1736  Re[3]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ Hirotow -(2007/03/05(Mon) 10:32:20)
>
    No1734 (M.K さん) に返信
    > ■No1694 (ダッチ さん) に返信
    >
    > ダッチさん、お返事ありがとうございます。
    >
    > 開発環境が会社にしかないので、検証とお返事に日を開けてしまい
    > 申し訳ありません。
    >
    >>ToolTip.Popup イベントで
    >>ToolTip.Show メソッド を呼んでみてはいかがでしょうか。
    >
    > PopupイベントでShowメソッドを呼ぶように記述した所、再帰的に
    > Popupイベントが発生してしまい、最終的にStackOverflowとなって
    > しまいます。
    >
    > private void toolTip1_Popup(object sender, PopupEventArgs e)
    > {
    > toolTip1.Show("あいうえお", button1, 0, 0); // ← 0,0は例です。
    > }
    >
    > もし宜しければサンプルコードなどを挙げて頂けないでしょうか?
    >
    対処療法的ですが、
    いったんHide()すればShow()しても大丈夫だと思います。
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1746  Re[4]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ M.K -(2007/03/05(Mon) 15:25:13)
    No1736 (Hirotow さん) に返信
    
    > 対処療法的ですが、
    > いったんHide()すればShow()しても大丈夫だと思います。
    
    Hirotowさん、返信ありがとうございます。
    
    いったんHide()してShow()と言うのは以下のようなコーディングを指すので
    しょうか?
    
    private void toolTip1_Popup(object sender, PopupEventArgs e)
    {
       toolTip1.Hide(button1);
       toolTip1.Show("あいうえお", button1, 0, 0);  // ← 0,0は例です。
    }
    
    この方法ですとツールチップが表示→消滅→表示→消滅と点滅が繰り返され
    てしまうのですが、Hide()メソッドを記述するイベントや位置が違うのでしょうか?
    
    
    これはあくまで私見なのですが、Popupイベントは"表示前"に発生する様なので
    その中でShow()メソッドを実行すると、それに反応して別のPopupイベントが
    発生してしまい、無限ループっぽくなってOverflowが発生するものと考えます。
    
    更にPopupイベント内でHide()メソッドを実行した場合、初回のイベントでは
    非表示の対象となるツールチップが表示されておらず、再帰的に発生する2回目
    以降のイベントで、前回のイベント時に表示されたツールチップを非表示としま
    すが、すぐさま次のShow()メソッドが実行されるため、結果的にツールチップが
    点滅している物と思われます。
    
    
    自分でももう少し調査してみますが、他の方法をご存知の方がいらっしゃいまし
    たら、引き続き宜しくお願いします。
    
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1748  Re[5]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ シャノン -(2007/03/05(Mon) 15:44:47)
    2007/03/05(Mon) 15:45:28 編集(投稿者)

    No1746 (M.K さん) に返信
    > 自分でももう少し調査してみますが、他の方法をご存知の方がいらっしゃいまし
    > たら、引き続き宜しくお願いします。

    Hide ではなく、e.Cancel = true で表示をキャンセルしてから Show してみるとか?
    #試してないのでテキトーなこと言ってます。
    #というか、なんで ToolTip のサイズは変えられるのに位置は変えられねぇんだよ…
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1754  Re[6]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ Hirotow -(2007/03/05(Mon) 16:22:45)
>
    > Hide ではなく、e.Cancel = true で表示をキャンセルしてから Show してみるとか?
    > #試してないのでテキトーなこと言ってます。
    > #というか、なんで ToolTip のサイズは変えられるのに位置は変えられねぇんだよ…

    そっちのほうが正解かもしれませんね。

    # 正攻法は継承してオーバーライドかもしれない。
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1770  Re[7]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ ダッチ -(2007/03/05(Mon) 22:05:27)
    > もし宜しければサンプルコードなどを挙げて頂けないでしょうか?
    M.K さんと同じですよ。
    ただ私の環境では、Popup イベントが 13回連続で来た後に、イベントがこなくなっていました。
    そのため、例外も発生しませんでした。

    しかし、Popup イベントが連続してきているため、この方法ではダメですね。
    すみません。

    > # 正攻法は継承してオーバーライドかもしれない。
    これでいけるならこれが良いですね。

    後は、もう一つ別の ToolTip を用意して、
    Popup イベントで e.Cancel = True して一つ目はキャンセルし、
    そのイベントの中で別の ToolTip を表示するとか。

    用は、ToolTip の表示タイミングをどうするかですね。
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1774  Re[8]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ Hirotow -(2007/03/06(Tue) 00:30:20)
>
    > 後は、もう一つ別の ToolTip を用意して、
    > Popup イベントで e.Cancel = True して一つ目はキャンセルし、
    > そのイベントの中で別の ToolTip を表示するとか。

    Popupイベントからはどのコントロールか判別できないところがネックですね。

    私としては、対象コントロールのToolTipEnabledをfalseにしておき、MouseOverイベントで(必要に応じてタイマー処理をして)対象コントロールの位置渡してツールチップを表示すればどうかなと思います。
記事No.1692 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1775  Re[9]: ToolTipウィンドウの表示位置変更方法について
□投稿者/ みーしん -(2007/03/06(Tue) 01:41:12)
    2007/03/06(Tue) 01:51:30 編集(投稿者)
    2007/03/06(Tue) 01:46:55 編集(投稿者)


    うん、やっぱりテキストボックスぐらいなら継承してプロパティ(ToolString)なんか取り付けて。

    MouseHoverなどでそのプロパティを拾って表示して。
       ’時間計測など付ける
      Me.ToolTip1.Show(CType(sender, Classtxt).toolstring, Me, New Point(CType(sender, classtxt).Location))

    MouseLeaveでHide(Me)

      Me.ToolTip1.Hide(Me)

    VBですけど。






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

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 >>

ヒット件数が多いので過去ログ1〜10 までの検索結果 / 過去ログ11からさらに検索→

パスワード/

- Child Tree -