C#, C♯, C#相談室 Part71
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/03/24(土) 16:43:24.60C#, C♯, C#相談室 Part70
http://toro.2ch.net/test/read.cgi/tech/1327570969/
Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx
0237デフォルトの名無しさん
2012/04/17(火) 23:58:40.56100件とかそんな程度だとどうでも良いんだろうけど、
5000件とか超えた辺りから差がもろに実感できるようになるし。
0238デフォルトの名無しさん
2012/04/18(水) 00:11:32.13アンマネージドメモリをプロセス間の共通メモリとして使ってて、排他処理を自前で実装しようとしてます。
プロセス1、プロセス2があったとして、
処理Aを実行しているときはロックして他のプロセスを排他制御したいとする。
1.まず、プロセス1が、メモリA(1byte)を見て0が入ってることを確認する。
2.プロセス1はメモリAに1という数字を入れる
3.プロセス1は処理Aを実行する
4.その間、プロセス2が処理Aを実行しようとするが、その前に、メモリAを見る。
5.メモリAには1という数字(フラグ)が入っているので、処理Aを実行してはいけないと判断し、メモリAが0になるまで待つ。
6.プロセス1は処理Aを終えた後、メモリAに0を入れる。
7.プロセス2がメモリAに0が入ってるのを確認し、処理Aを実行する
これがミューテックス?違う?
でもこれだと、プロセス1がメモリAを見て、フラグが入っていないことを確認するというステップ(隙)があるから、
その後、メモリAを1にするまでに、プロセス2にメモリAを参照されちゃうと、まだメモリAには0が入っているから、
プロセス2も処理Aを実行しちゃうよね?
どうすればいいんだろう・・・。
0239デフォルトの名無しさん
2012/04/18(水) 00:13:51.50まじめに考えるとフォントが悪いんだな
目が疲れるからイライラするんだな
windows+Janeだと対策方法はないんだっけ?
gdippとかgdi++を使わない
0240デフォルトの名無しさん
2012/04/18(水) 00:53:29.65だからCheck-Then-Actをサポートした機械語命令などを使う。
0241デフォルトの名無しさん
2012/04/18(水) 00:54:42.36Compare-And-Set系の機械語命令など。
0242デフォルトの名無しさん
2012/04/18(水) 07:16:18.750243デフォルトの名無しさん
2012/04/18(水) 07:17:51.76つ 老眼鏡
0244デフォルトの名無しさん
2012/04/18(水) 07:35:01.66フォント違うだけで疲れを体感したことはあるなあ。
0245デフォルトの名無しさん
2012/04/18(水) 08:14:37.35ロックはどういう仕組みで実装されるのかって話じゃないの?
0246デフォルトの名無しさん
2012/04/18(水) 09:19:34.360247デフォルトの名無しさん
2012/04/18(水) 10:44:12.740248デフォルトの名無しさん
2012/04/18(水) 10:55:17.770249デフォルトの名無しさん
2012/04/18(水) 14:43:44.51>>246のような言い回しはしないだろうなあ、と思ったりする
0250デフォルトの名無しさん
2012/04/18(水) 15:15:18.060251デフォルトの名無しさん
2012/04/18(水) 16:13:18.66豆がずんずん伸びて登っていくやつ
0252デフォルトの名無しさん
2012/04/18(水) 16:21:54.300253デフォルトの名無しさん
2012/04/18(水) 16:31:33.58プログラマーって根暗で陰湿でキモいって言われるんだよな
0254デフォルトの名無しさん
2012/04/18(水) 18:20:08.850255デフォルトの名無しさん
2012/04/18(水) 20:49:29.560256デフォルトの名無しさん
2012/04/18(水) 21:31:59.570257デフォルトの名無しさん
2012/04/18(水) 21:46:55.23さっさと尖閣に向かう準備しろよ。ヘルメットを忘れるな
0258デフォルトの名無しさん
2012/04/19(木) 23:00:59.57これで生成したgにHoverイベントのリスナーを設定することってできるのでしょうか?
0259デフォルトの名無しさん
2012/04/19(木) 23:33:14.70なら Graphics に MouseHover イベントは無いから出来ない。
PictureBox が MouseHover イベント持ってるからそれを使えばいい。
0260デフォルトの名無しさん
2012/04/20(金) 00:07:27.98ありがとうございます
HoverはMouseHoverのことでした
すると、Graphicsで描いた図形にマウスを載せたらカーソルが変化する・・・っていうのを作る場合、
Graphicsの座標を記憶しておいて、そこの範囲内に侵入したかをMouseMoveで判定して
Cursor.current = Cursor.Cross;
とかにしないといけないんですか・・・
0261デフォルトの名無しさん
2012/04/20(金) 00:09:28.86いろいろと勘違いしてて変なことをしないといけないと思い込んでそう
かなw
0262デフォルトの名無しさん
2012/04/20(金) 07:08:24.070263デフォルトの名無しさん
2012/04/20(金) 07:10:19.84Regionとかで
0264デフォルトの名無しさん
2012/04/20(金) 07:13:26.22その前にイベントとCreateGraphicsが入り乱れることはないと思うんだけどなw
PictureBox上で座標とか拾って後は個別で管理してる図形との
当たり判定すればいいだけなんだし
だからこそ>>261
0265デフォルトの名無しさん
2012/04/20(金) 07:17:05.89ほんと>>252これ
0266デフォルトの名無しさん
2012/04/20(金) 07:21:37.75http://dobon.net/vb/dotnet/form/formregion.html
FormじゃなくてControlにもregion適用できる
0267デフォルトの名無しさん
2012/04/20(金) 07:22:41.42陰湿なんじゃなくて文字でしかやり取りできない上に質問する人も
よくわかってないことをソースもなしで独り言をいうかのように書き込むから
こっちも的確な答えができないだけ
なので漠然とした書き込みには漠然としたやり取りになるだけ
>>258で何がしたいかわかる?
0268デフォルトの名無しさん
2012/04/20(金) 07:27:47.12質問の意味がわからなければスルーすればいい、煽ることはない
0269デフォルトの名無しさん
2012/04/20(金) 07:32:01.37理解できないからスルー→普通
質問のし方が悪いと伝えて何がわからないのか説明させ直す→相手の成長を考えた上司
もしかしてこういう質問じゃないか、だとしたら答えはこれ→エスパー
0270デフォルトの名無しさん
2012/04/20(金) 07:32:52.21意味がわからないんじゃなく目指す先がわからない
この差は違うけどそう思わないんだろうな・・・
xxxのようなことを実現したいんだけど・・みたいなのがあればわかりやすいんだが
>>258のようなトンチンカンな話だけだしねえ
0271デフォルトの名無しさん
2012/04/20(金) 07:33:58.89それは質問者と同じ空間を共有してる場合だよね
文字だけでやり取りする掲示板だとリアル以上にやり取りは困難だよw
0272デフォルトの名無しさん
2012/04/20(金) 07:51:25.35もし答えを知っていて気分がよかったら上から目線で答えてあげるのがこいつ
0273デフォルトの名無しさん
2012/04/20(金) 07:54:49.88あんなんで機嫌を損ねる人間がいるという純然たる事実の前には、
一般常識など吹っ飛ぶ世界があることを彼は知るべき。
0274デフォルトの名無しさん
2012/04/20(金) 07:57:43.16あれどこだっけ?
みたいな質問されてもわからん
結局ヒアリングするしかない
そのヒアリングの仕方がちょっとおかしく感じただけで煽られてるとか被害者ぶるのは辞めたほうがいい
そもそも質問内容があやふやだから回答するほうも困ってるんだし
0275デフォルトの名無しさん
2012/04/20(金) 08:01:38.870276デフォルトの名無しさん
2012/04/20(金) 08:06:38.75俺は、ヒアリングが下手だと言ってるんだよ。貴方は馬鹿にされたと思ったんでしょ?
ただ、貴方に配慮する義務もねーし、偉そうに言う自由もあるんだな。
0277デフォルトの名無しさん
2012/04/20(金) 08:11:16.220278デフォルトの名無しさん
2012/04/20(金) 08:12:12.460279デフォルトの名無しさん
2012/04/20(金) 10:02:07.910280デフォルトの名無しさん
2012/04/20(金) 10:12:36.570281デフォルトの名無しさん
2012/04/20(金) 11:50:02.980282デフォルトの名無しさん
2012/04/20(金) 12:09:54.61違う業種でほんと良かったw
0283デフォルトの名無しさん
2012/04/20(金) 12:12:58.010284デフォルトの名無しさん
2012/04/20(金) 12:27:44.450285デフォルトの名無しさん
2012/04/20(金) 12:41:02.770286デフォルトの名無しさん
2012/04/20(金) 12:46:11.250287デフォルトの名無しさん
2012/04/20(金) 12:46:24.20www
0288デフォルトの名無しさん
2012/04/20(金) 13:28:01.05var c = a.Concat(b).ToArray();
var c = a + b;
これを拡張メソッドで
public static T[] operator+ (T[] array1, T[] array2);
と書くとコンパイルエラーになるのですが、どうすればいいでしょうか
0289デフォルトの名無しさん
2012/04/20(金) 13:34:40.85個人的には便利と思うほど配列の連結なんてやらんな
0290デフォルトの名無しさん
2012/04/20(金) 13:43:40.68ぱっと見で組み込み型か配列か良くわからないとかバグの素
0291デフォルトの名無しさん
2012/04/20(金) 13:48:57.41Linqでだいたい用事が済むからなのかな
0292288
2012/04/20(金) 14:16:37.12無理そうなので諦めます
0293デフォルトの名無しさん
2012/04/20(金) 14:21:24.45LINQ 自身はジェネリックに作られてるけど、使う側はそれを別に意識しないという。
0294デフォルトの名無しさん
2012/04/20(金) 14:22:12.34少し便利になると思うけど、はまりどころ増す度合いの方がでかい。
array1.Concat(array2) で OK。
0295デフォルトの名無しさん
2012/04/20(金) 19:05:58.700296デフォルトの名無しさん
2012/04/20(金) 19:34:31.10とりあえずControlBox=falseにしても普通にウィンドウボーダーが出るな
FormBorderStyleはまた別の話
0297デフォルトの名無しさん
2012/04/20(金) 19:54:08.030298デフォルトの名無しさん
2012/04/20(金) 20:23:58.91使えよ、いまさら何型引数にしたらいいかワケワカメなコード書いてんじゃねぇ
0299デフォルトの名無しさん
2012/04/20(金) 20:34:45.800300デフォルトの名無しさん
2012/04/20(金) 20:48:29.510301258, 260
2012/04/20(金) 21:02:46.24すいません、今までテキスト転記とかDB登録とかばかりやっていて画像処理系はほとんどやったことなかったんです
Regionとか他のイベントとかためしてみます
ありがとうございました。
0302デフォルトの名無しさん
2012/04/20(金) 21:05:09.96それは、無理。
0303デフォルトの名無しさん
2012/04/20(金) 21:10:01.02ありがとうございます
0304デフォルトの名無しさん
2012/04/20(金) 21:24:24.97Linq使ってんだからそりゃ使ってるよ
C++の頃のようには使わなくなったって話だ
0305デフォルトの名無しさん
2012/04/21(土) 00:42:41.14プログラムの動作の重要な部分を決めちゃうようになってきたんだよなー。
まあ、.net は言語間の機能を共通化する意図があるんだろうけど。
0306デフォルトの名無しさん
2012/04/21(土) 04:34:13.36の言いたいことはよく分からないけど、
でもなんか酷く気になることを言ってる気がする。
0307デフォルトの名無しさん
2012/04/21(土) 04:57:48.56http://uchukamen.com/Programming1/HTMLGet/index.htm
のページの非同期GETをみて、Webページを取得してくるものを書きましたが、
System.Net.WebException: The operation has timed out.
at System.Net.WebConnectionStream.Read (System.Byte[] buffer, Int32 offset, Int32 size) [0x00000] in <filename unknown>:0
at System.IO.StreamReader.ReadBuffer () [0x00000] in <filename unknown>:0
at System.IO.StreamReader.Read (System.Char[] buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.StreamReader.ReadToEnd () [0x00000] in <filename unknown>:0
という例外が、StreamReaderをReadToEndするところで発生してしまいます。
例外が発生したあとにもう一度、非同期GETをすると取得できることがあります。
取得するページはhttp://www.yahoo.co.jp/でブラウザなどからは問題なく見れています。
考えられる原因はどんなものがあるのでしょうか
0308デフォルトの名無しさん
2012/04/21(土) 05:05:07.200309デフォルトの名無しさん
2012/04/21(土) 05:51:17.66:
('A`)ノ くまの子みていた
ノ( ヘヘ
('A`) かく ('A`) れん
∨) (∨
(( ))
ヽ('A`)ノ ぼっ♪
( ) ゛
゛/ω\
('A` ) おしりを出した子 いっと…
(⊃⌒*⌒⊂)
/__ノωヽ__
__[警]
( ) ('A`)
( )Vノ )
| | ω|
0310デフォルトの名無しさん
2012/04/21(土) 06:48:58.760311307
2012/04/21(土) 06:54:12.93ソースコードです
void Hoge() {
try {
var webRequest = HttpWebRequest.Create("http://www.yahoo.co.jp/");
webRequest.BeginGetResponse(new AsyncCallback(requestCallback), webRequest);
} catch (Exception e) {
Console.WriteLine(e);
}
}
private static void requestCallback(IAsyncResult ar) {
try {
var webRequest = (HttpWebRequest)ar.AsyncState;
var webResponse = (HttpWebResponse)webRequest.EndGetResponse(ar);
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string data = sr.ReadToEnd();
sr.Close();
Console.WriteLine(data);
} catch (Exception e) {
Console.WriteLine(e);
}
}
0312デフォルトの名無しさん
2012/04/21(土) 08:17:13.170313307
2012/04/21(土) 08:23:02.86http://msdn.microsoft.com/ja-jp/library/system.net.httpwebrequest.begingetresponse(v=vs.80).aspx
0314デフォルトの名無しさん
2012/04/21(土) 10:46:12.04ファクトリーパターン使うのがセオリー
いちいちクラス作るのが面倒ならデリゲートで
0315デフォルトの名無しさん
2012/04/21(土) 11:34:38.46var array = new float[100, 100];
var row = array[0,];
みたいな。
0316デフォルトの名無しさん
2012/04/21(土) 11:40:24.220317デフォルトの名無しさん
2012/04/21(土) 11:42:32.22ない
そういう場合に限らず、多次元配列は一切使わないで
常に配列の配列を使うのが基本
0318315
2012/04/21(土) 11:51:53.90コピーするのに1行では書けないですよね?
0319デフォルトの名無しさん
2012/04/21(土) 11:56:09.74100*100の一次元配列にしてy*100+xとか計算してアクセスすればいいんじゃね?
0320デフォルトの名無しさん
2012/04/21(土) 11:56:52.790321デフォルトの名無しさん
2012/04/21(土) 11:58:02.100322デフォルトの名無しさん
2012/04/21(土) 12:02:52.68どういうことで使うからコピーする羽目になってるのかねえ
0323デフォルトの名無しさん
2012/04/21(土) 12:42:40.21コピーするメソッド用意すればいいだろ・・
0324デフォルトの名無しさん
2012/04/21(土) 12:52:57.970325デフォルトの名無しさん
2012/04/21(土) 13:19:48.53複製なら>>324で一行だし、既存の配列へのコピーも普通に書いてこんだけだろ
0326デフォルトの名無しさん
2012/04/21(土) 23:32:13.990327デフォルトの名無しさん
2012/04/21(土) 23:58:30.760328デフォルトの名無しさん
2012/04/21(土) 23:58:51.712nd
3rd
4th
0329デフォルトの名無しさん
2012/04/22(日) 00:22:27.96横からすいません
そのコードの意味を詳しく教えて頂けないでしょうか
0330デフォルトの名無しさん
2012/04/22(日) 07:18:16.27object[][] array0;
object[][] array1 = array0.Select(object[] row => row.ToArray()).ToArray();
こういう書き方はしないけど意味はこんな感じ
ToArray()で配列をコピーしてる
0331デフォルトの名無しさん
2012/04/22(日) 09:25:05.01for (int i = 0; i < array0.Length; i++) {
array1[i] = array0[i].ToArray();
}
この場合ToArrayはCloneと同じ
このループをLINQで省略してしまうと(まったく同じというわけではないが)
array0.Select(row => row.ToArray()).ToArray()になる
0332デフォルトの名無しさん
2012/04/22(日) 09:34:59.26ラインまたぎでコピーしないのなら>>320でいいと思うけど
0333デフォルトの名無しさん
2012/04/22(日) 10:23:24.570334デフォルトの名無しさん
2012/04/22(日) 10:55:25.960335デフォルトの名無しさん
2012/04/22(日) 11:27:29.29【ソウル共同】韓国紙の朝鮮日報(電子版)は21日、米国の教科書に記載されている
「日本海」の呼称を「東海」に変更するよう求める韓国人と、現状維持を訴える日本人が、
それぞれの要望文を米ホワイトハウスのホームページ(HP)の「請願コーナー」に互いに大量に
アップしたため、同HPが一時ダウンしたと報じた。
同紙によると、米首都ワシントン郊外のバージニア州の韓国人会が3月下旬、
「子どもたちが間違った歴史を学ばされている」として「呼称の訂正」を要求する請願文を
寄せたのを機に、韓国人の請願運動が始まった。
http://www.kobe-np.co.jp/knews/0004992358.shtml
0336デフォルトの名無しさん
2012/04/22(日) 12:23:42.53■ このスレッドは過去ログ倉庫に格納されています