「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/05/02(火) 22:05:40.13ID:OPFlvhxj612デフォルトの名無しさん
2017/05/29(月) 16:29:32.48ID:lQKC7nKu613デフォルトの名無しさん
2017/05/29(月) 16:38:30.94ID:KWmGTlOy614デフォルトの名無しさん
2017/05/29(月) 16:57:00.21ID:XexF9nJM >>611
こういう場合、無限ループの中でどんな処理を行う予定なの?
こういう場合、無限ループの中でどんな処理を行う予定なの?
615デフォルトの名無しさん
2017/05/29(月) 17:10:58.74ID:pjx27QrG >>611
外側から強制的に止めたいとか思ってるならその発想は危険な考え違い
外側から強制的に止めたいとか思ってるならその発想は危険な考え違い
616デフォルトの名無しさん
2017/05/29(月) 17:31:52.87ID:NQQqCKG9617デフォルトの名無しさん
2017/05/29(月) 17:49:34.30ID:pjx27QrG618デフォルトの名無しさん
2017/05/29(月) 17:56:22.13ID:guqVR5DS 適切な処理をせずにスレッドを強制的に止めるのは設計がよくないという話、まあ気持ちは分かるけどね
619デフォルトの名無しさん
2017/05/29(月) 18:00:17.76ID:cnTBcIoG その前に終了処理したいのか一時停止したいのかで変わるだろうな
620デフォルトの名無しさん
2017/05/29(月) 18:00:51.67ID:oHsWfsZc621デフォルトの名無しさん
2017/05/29(月) 18:15:18.42ID:NQQqCKG9 皆さんありがとうございました
フラグで制御すると無限ループ内のいたるところでgoto文を書かなきゃ行けないので
まずいかなと思っておりました
やっぱりキャンセルで止める方法を調べてみます。
たくさんのご意見大変参考になりました。ありがとうございました!
フラグで制御すると無限ループ内のいたるところでgoto文を書かなきゃ行けないので
まずいかなと思っておりました
やっぱりキャンセルで止める方法を調べてみます。
たくさんのご意見大変参考になりました。ありがとうございました!
622デフォルトの名無しさん
2017/05/29(月) 18:32:30.18ID:KWmGTlOy >>617
フラグじゃHttpClientなんか止まらんでしょ
https://msdn.microsoft.com/ja-jp/library/hh551741(v=vs.118).aspx
CancellationToken 使って止めるのが普通です
フラグじゃHttpClientなんか止まらんでしょ
https://msdn.microsoft.com/ja-jp/library/hh551741(v=vs.118).aspx
CancellationToken 使って止めるのが普通です
623デフォルトの名無しさん
2017/05/29(月) 19:24:40.20ID:pjx27QrG >>622
俺の理解が間違ってるのかな?
確かにCancellationTokenSource使えばユーザーコードなしても実行前のタスクをキャンセルすることは
可能だと思うけど、一旦動き出したタスクを強制終了なんか出来ないと思うけど...
俺の理解が間違ってるのかな?
確かにCancellationTokenSource使えばユーザーコードなしても実行前のタスクをキャンセルすることは
可能だと思うけど、一旦動き出したタスクを強制終了なんか出来ないと思うけど...
624デフォルトの名無しさん
2017/05/29(月) 19:30:56.57ID:cnTBcIoG 外部exeとかもそうだけどキャンセルするからといってプロセスをすぐ殺す必要はないんだよな
>>623
安全に中断とかでなく止められれば何でもいいんだろ
質問者はもういないしスレ違いの方に行きそうだからその辺でやめてくれ
>>623
安全に中断とかでなく止められれば何でもいいんだろ
質問者はもういないしスレ違いの方に行きそうだからその辺でやめてくれ
625デフォルトの名無しさん
2017/05/29(月) 19:33:24.08ID:HUcfMRFq626デフォルトの名無しさん
2017/05/29(月) 19:52:24.02ID:NQQqCKG9 質問者です
強制終了させる必要はなかったので
結局キャンセル入れてタスクのループから抜けるということにしました
↓一部抜粋ですが以下のような感じです。これ便利ですね勉強になりました
Task taskTest = Task.Factory.StartNew(() =>
{
while (true)
{
try
{
cancellationTokenSource.Token.ThrowIfCancellationRequested();
}
catch (OperationCanceledException oce)
{
break;
}
}
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}, cancellationTokenSource.Token);
強制終了させる必要はなかったので
結局キャンセル入れてタスクのループから抜けるということにしました
↓一部抜粋ですが以下のような感じです。これ便利ですね勉強になりました
Task taskTest = Task.Factory.StartNew(() =>
{
while (true)
{
try
{
cancellationTokenSource.Token.ThrowIfCancellationRequested();
}
catch (OperationCanceledException oce)
{
break;
}
}
cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}, cancellationTokenSource.Token);
627デフォルトの名無しさん
2017/05/29(月) 20:24:05.73ID:TtK3Weat 例外投げるのって結構コストがかかるんだよな
それでもループ抜けるのに例外使う利点って何か教えて
それでもループ抜けるのに例外使う利点って何か教えて
628デフォルトの名無しさん
2017/05/29(月) 20:30:33.89ID:UcFdrNFR カッコいいじゃん
629デフォルトの名無しさん
2017/05/29(月) 21:04:57.40ID:KWmGTlOy630デフォルトの名無しさん
2017/05/29(月) 22:15:44.46ID:cP3symFG631デフォルトの名無しさん
2017/05/29(月) 23:57:03.22ID:pjx27QrG632デフォルトの名無しさん
2017/05/30(火) 00:17:48.17ID:7mmlzI+/ >>631
Thread.Interruptと一緒ってのが間違い。
その記事にあるように、対応メソッドだけキャンセル出来る。
Thread.Interruptみたいに無理やり止めるわけじゃないから、こっちのが安全。
Thread.Interruptと一緒ってのが間違い。
その記事にあるように、対応メソッドだけキャンセル出来る。
Thread.Interruptみたいに無理やり止めるわけじゃないから、こっちのが安全。
633デフォルトの名無しさん
2017/05/30(火) 00:28:00.84ID:7mmlzI+/634デフォルトの名無しさん
2017/05/30(火) 00:30:40.38ID:iGfRfCvW >>631
リンク先のコードは試すまでもない意味不明なプログラムだな
CancellationTokenでのキャンセルは自分でTokenを監視してキャンセル処理を書かないと何もしてくれない
Task作るときに渡しといたからって中断処理をしてくれるわけじゃない
だからこの結果は当たり前
CancellationTokenに対応してるメソッドはTokenを監視してその処理固有の何らかのキャンセル方法を使って処理をキャンセルしてる
Thread.Interruptとは違う
リンク先のコードは試すまでもない意味不明なプログラムだな
CancellationTokenでのキャンセルは自分でTokenを監視してキャンセル処理を書かないと何もしてくれない
Task作るときに渡しといたからって中断処理をしてくれるわけじゃない
だからこの結果は当たり前
CancellationTokenに対応してるメソッドはTokenを監視してその処理固有の何らかのキャンセル方法を使って処理をキャンセルしてる
Thread.Interruptとは違う
635デフォルトの名無しさん
2017/05/30(火) 01:29:56.07ID:9DtCQxQF >>612で良かったじゃんな
636デフォルトの名無しさん
2017/05/30(火) 01:40:24.01ID:yo83A8ao637デフォルトの名無しさん
2017/05/30(火) 02:03:42.90ID:7mmlzI+/638デフォルトの名無しさん
2017/05/30(火) 02:06:44.79ID:yo83A8ao639デフォルトの名無しさん
2017/05/30(火) 07:06:41.02ID:3LKQdhjH >>612で良かったじゃんな
640デフォルトの名無しさん
2017/05/30(火) 08:10:12.34ID:nt0s20eG >>632,634
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
641デフォルトの名無しさん
2017/05/30(火) 08:36:57.90ID:nt0s20eG CancellationTokenの引き継ぎって明示的に渡さなくてもいいように実装できなかったのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
642デフォルトの名無しさん
2017/05/30(火) 08:50:03.66ID:nt0s20eG あーでもキャンセルのハンドリング自体が非同期で行われるようなケースまで想定すると、
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
643デフォルトの名無しさん
2017/05/30(火) 09:01:41.80ID:+3RQshmo >>612で良かったじゃんな
644デフォルトの名無しさん
2017/05/30(火) 09:36:50.58ID:4zyQHZTY645デフォルトの名無しさん
2017/05/30(火) 10:23:05.72ID:22c10yuY >>644
それは別の問題だろ
それは別の問題だろ
646デフォルトの名無しさん
2017/05/30(火) 10:34:03.46ID:22c10yuY 呼び出した先のメソッドの止め方が分からないだけで
フラグでいいよ
フラグでいいよ
647デフォルトの名無しさん
2017/05/30(火) 11:47:54.70ID:27U6uUbR スクレイピングの処理時間の大半は、レスポンスが返ってくるのを待つ時間と受信処理
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない
まあ作っても役立たずのゴミクズボタンが出来るだけだな
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない
まあ作っても役立たずのゴミクズボタンが出来るだけだな
648デフォルトの名無しさん
2017/05/30(火) 13:19:04.25ID:iGfRfCvW >>640
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?
InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ
もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?
InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ
もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
649デフォルトの名無しさん
2017/05/30(火) 13:27:52.68ID:yiTLmUbP >>647
それと611の処理となんの関係があるの?
それと611の処理となんの関係があるの?
650626
2017/05/30(火) 14:31:20.95ID:Wk6Gc0Fl 昨日はタスクのキャンセルの件ありがとうございました。大変助かりました。
そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
651デフォルトの名無しさん
2017/05/30(火) 14:47:13.92ID:4zyQHZTY >>649
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
652デフォルトの名無しさん
2017/05/30(火) 14:57:38.82ID:yiTLmUbP >>651
そんな仕組み誰も提供して欲しくないと思うわwww
そんな仕組み誰も提供して欲しくないと思うわwww
653626
2017/05/30(火) 15:23:37.93ID:Wk6Gc0Fl 自分の質問のせいで争いが起こってしまうとは・・・
申し訳ないです。。
申し訳ないです。。
654デフォルトの名無しさん
2017/05/30(火) 15:50:05.28ID:r/CU7EmN 気にすんな
タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
655デフォルトの名無しさん
2017/05/30(火) 16:48:13.36ID:Wk6Gc0Fl はい、クッキーはどうでもいいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
656デフォルトの名無しさん
2017/05/30(火) 18:28:13.59ID:nt0s20eG >>655
それだけが理由ならPhantomJS使えば済む話じやね
それだけが理由ならPhantomJS使えば済む話じやね
657デフォルトの名無しさん
2017/05/30(火) 19:00:00.41ID:9pAG49er あの…WPFとUWPはどっちが速いですか?
優秀な方教えてください
優秀な方教えてください
658デフォルトの名無しさん
2017/05/30(火) 19:01:21.46ID:Z7PF006I >>657
form最強
form最強
659デフォルトの名無しさん
2017/05/30(火) 19:01:55.63ID:9pAG49er >>658
エェッo┤*´Д`*├o
エェッo┤*´Д`*├o
660デフォルトの名無しさん
2017/05/30(火) 19:09:08.93ID:27U6uUbR >>657
UWPが桁違いに早い。特に起動時
UWPが桁違いに早い。特に起動時
661デフォルトの名無しさん
2017/05/30(火) 19:10:38.44ID:9pAG49er662デフォルトの名無しさん
2017/05/30(火) 19:18:21.10ID:27U6uUbR663デフォルトの名無しさん
2017/05/30(火) 19:22:45.51ID:5LsaYMbU ある意味「石器」最強かもねw
664デフォルトの名無しさん
2017/05/30(火) 19:24:02.22ID:Q5Vu0cbW >>656アプリに色々スクレイピングしたデータを表示させたいんです
665デフォルトの名無しさん
2017/05/30(火) 19:27:03.66ID:9pAG49er666デフォルトの名無しさん
2017/05/30(火) 19:27:17.24ID:nt0s20eG667デフォルトの名無しさん
2017/05/30(火) 19:28:41.25ID:9pAG49er668デフォルトの名無しさん
2017/05/30(火) 19:33:16.73ID:Q5Vu0cbW669デフォルトの名無しさん
2017/05/30(火) 19:34:33.06ID:Q5Vu0cbW >>667
いえ違います
いえ違います
670デフォルトの名無しさん
2017/05/30(火) 19:40:27.25ID:27U6uUbR >>665
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
671デフォルトの名無しさん
2017/05/30(火) 19:42:58.08ID:n5zRqOxX UWPは起動は遅いだろ
くるくるばっかしてる
くるくるばっかしてる
672デフォルトの名無しさん
2017/05/30(火) 20:29:50.15ID:PLPV+qTT class ClassA
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}
static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}
GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}
static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}
GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
673デフォルトの名無しさん
2017/05/30(火) 20:48:23.05ID:nt0s20eG >>668
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
674デフォルトの名無しさん
2017/05/30(火) 20:53:25.27ID:sRXo2Yu8 >>672
コンストラクタで乱数生成してそれ使ったら?
コンストラクタで乱数生成してそれ使ったら?
675デフォルトの名無しさん
2017/05/30(火) 21:27:08.94ID:/DgUh2Dj >>672
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
676デフォルトの名無しさん
2017/05/30(火) 22:40:18.35ID:GhBAathx 便乗で質問だけど、オブジェクトの等価検査で使われる値が変化した時は
ハッシュコードも変えないとまずいよね?
ハッシュコードも変えないとまずいよね?
677デフォルトの名無しさん
2017/05/30(火) 22:43:36.35ID:kWERrntF >>676
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
678デフォルトの名無しさん
2017/05/30(火) 23:44:25.77ID:PLPV+qTT679デフォルトの名無しさん
2017/05/31(水) 00:37:06.72ID:lBEWYtx2 Formアプリで登録リスト一覧みたいなものを表示させたいんですが、DataGridViewみたいな感じにしたい時は何を使いますか?
680デフォルトの名無しさん
2017/05/31(水) 01:04:50.93ID:XimrquBh DataGridView
681デフォルトの名無しさん
2017/05/31(水) 01:46:52.64ID:zMZ0t3dm 意図が全く分からん
682デフォルトの名無しさん
2017/05/31(水) 02:01:48.65ID:toHF4qpw マジキチ
683626
2017/05/31(水) 05:04:07.36ID:zbjxMbd2684デフォルトの名無しさん
2017/05/31(水) 06:29:23.93ID:+xjBJZk4 >>683
対象のページを手動で開いてるってことか?
対象のページを手動で開いてるってことか?
685デフォルトの名無しさん
2017/05/31(水) 06:30:10.04ID:+xjBJZk4 >>683
対象のページを手動で開いてるってことか?
対象のページを手動で開いてるってことか?
686デフォルトの名無しさん
2017/05/31(水) 06:39:24.23ID:zbjxMbd2 すいません質問がかなり流れてしまってるのでもう一度書かせていただきます
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。
ソースは以下のような感じです
webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));
foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}
※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
687デフォルトの名無しさん
2017/05/31(水) 09:22:20.58ID:7bh7QxEt >>667
俺の時代はjpeg画像だったわ
俺の時代はjpeg画像だったわ
688デフォルトの名無しさん
2017/05/31(水) 10:03:22.46ID:bfprNrby お世話になります。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。
型は全要素がstringになっているという前提で良いです。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。
型は全要素がstringになっているという前提で良いです。
689デフォルトの名無しさん
2017/05/31(水) 10:10:44.40ID:bfprNrby 688ですが、一旦質問を取り下げます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
690デフォルトの名無しさん
2017/05/31(水) 11:11:33.20ID:YxSv7yTD Comparison<T>をIComparer<T>に変換する機能って用意されてないよねやっぱり
デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
691デフォルトの名無しさん
2017/05/31(水) 11:41:32.37ID:vbSdRoYa そういうライブラリを探す手間が大変
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
692デフォルトの名無しさん
2017/05/31(水) 14:16:43.04ID:Z1ZTId/u >>690
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
693デフォルトの名無しさん
2017/05/31(水) 15:14:41.46ID:SYDtjKSh あれ、デリゲートの拡張メソッドって定義できないと思い込んでたけど勘違いか。
ジェネリックの制約か何かとごっちゃになってたかな
ジェネリックの制約か何かとごっちゃになってたかな
694デフォルトの名無しさん
2017/05/31(水) 15:17:45.21ID:YmmFUVDx そんなことするより普通にnew MyDelegateComparer(comparison)でいいだろ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
695686
2017/05/31(水) 15:44:13.55ID:zbjxMbd2 ここでもだれもわからないんですね・・・
どうすればいいんだろう・・・
どうすればいいんだろう・・・
696デフォルトの名無しさん
2017/05/31(水) 15:53:10.88ID:RyxKgJ03 人生の無駄だと気付け
697デフォルトの名無しさん
2017/05/31(水) 19:20:18.69ID:EmdHwMni Null許容型の話ししてもいいですか?
698デフォルトの名無しさん
2017/05/31(水) 19:25:07.13ID:pBTVyMi8 駄目だと言ったらどうする!
699デフォルトの名無しさん
2017/05/31(水) 20:58:06.31ID:P4eqmxhP ASP.NET Identityって要するにユーザー情報やロール情報のリポジトリを注入するだけで認証処理が機能するようになるよって感じ?
700デフォルトの名無しさん
2017/05/31(水) 21:18:26.40ID:rluwNjli701デフォルトの名無しさん
2017/05/31(水) 21:36:24.45ID:PjLtCLFm いつも思うけど、こういう奴誰に向かって威張ってるつもりなのかね
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
702デフォルトの名無しさん
2017/05/31(水) 21:38:57.89ID:L1juUrGR >>700
arraylistを使うとどんなデメリットが有るの?
arraylistを使うとどんなデメリットが有るの?
703デフォルトの名無しさん
2017/05/31(水) 21:48:30.04ID:QtUbvsGm >>702
要素にどんな型でも放り込めてしまう
要素にどんな型でも放り込めてしまう
704デフォルトの名無しさん
2017/05/31(水) 21:50:42.84ID:rluwNjli705デフォルトの名無しさん
2017/05/31(水) 21:58:14.69ID:L1juUrGR >>704
すいません、ボックス化ってなんですか?
すいません、ボックス化ってなんですか?
706デフォルトの名無しさん
2017/05/31(水) 22:01:37.80ID:lqV8qj25 >>705
https://www.google.co.jp/search?client=android-asus&ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
https://www.google.co.jp/search?client=android-asus&ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
707デフォルトの名無しさん
2017/05/31(水) 22:16:20.70ID:rluwNjli >>705
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing
要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing
要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
708デフォルトの名無しさん
2017/05/31(水) 22:22:39.78ID:bj9JDDoN 以下のようなコレクションから、プロパティ「name」「no」が重複しているオブジェクトを全削除したいのですが
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします
public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });
//プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです
}
}
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします
public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });
//プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです
}
}
709デフォルトの名無しさん
2017/05/31(水) 22:24:50.71ID:ne18o3PY710デフォルトの名無しさん
2017/05/31(水) 22:27:06.86ID:L1juUrGR >>706、707
ありがとうございました。
ありがとうございました。
711デフォルトの名無しさん
2017/05/31(水) 22:27:16.87ID:ne18o3PY linq友の会スレでも行けよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 【WOWOW】UEFAチャンピオンズリーグ・ヨーロッパリーグ ★18
- とらせん
- 巨専】
- 【WOWOW】UEFAチャンピオンズリーグ・ヨーロッパリーグ ★17
- こいせん 全レス転載禁止
- わしせん ようこそ佐藤直樹くん ありがとう石井さん
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 最近レッテル貼りしてドヤ顔してるガチガイジが嫌儲に増えてない? [866936191]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
