[過去ログ] ふらっと C#,C♯,C#(初心者用) Part137 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
922: (ブーイモ MMf1-CKCa) 2018/06/02(土)19:16 ID:1ZPJADB4M(3/3) AAS
>>911
Any
923: (ワッチョイ b117-NLsb) 2018/06/02(土)19:21 ID:I3vJQFJE0(2/2) AAS
C#でメモリリークさせるコード書く奴がC/C++で無くせるとは到底思えないわ
924: (ワッチョイ 21e3-5Q+M) 2018/06/02(土)19:25 ID:QJbZaU5f0(6/7) AAS
>>921
うーん
爆速ではないなぁ
3分に1回動かしてる処理があるんだけど
強制GCせずにずっと動かしてるとき
メモリ使用量がかなりあがった状態でGCが動くと
3分に一度の処理のタイミングがズレちゃうんだよね
省1
925
(1): (スッップ Sd9a-L98v) 2018/06/02(土)19:29 ID:pCnJrSzQd(2/2) AAS
だめだこいつ
926
(1): (ワッチョイ 21e3-5Q+M) 2018/06/02(土)19:31 ID:QJbZaU5f0(7/7) AAS
>>925
なんかいい方法あるんですか?
927: (アウアウカー Sa5d-SvXf) 2018/06/02(土)19:37 ID:KX6MAuAea(1) AAS
ちゃんと設計してればC#でメモリーリークなんて気にすることなんてあるか?
そんなガバガバ設計してるやつがCだったら大丈夫なんだけど、って馬鹿な話誰が信じるよ
928: (ワントンキン MMb5-67BG) 2018/06/02(土)19:45 ID:msgJi+IZM(3/5) AAS
>>926
簡単だよ
マトモなコードを書くだけ
929: (ワッチョイ d681-gTal) 2018/06/02(土)20:14 ID:fh+k246w0(1) AAS
以降放置でお願いいたします
930: (ワッチョイ 21e3-/vbK) 2018/06/02(土)20:28 ID:iRadbqpq0(1) AAS
>メモリーリークなんて気にすること
ページフォルトを気にしないヴァカっていたな。
リークしていないが累積しすぎたページフォルトがOSを殺す
931: (アウアウウー Sa09-C2Ni) 2018/06/02(土)20:30 ID:+/nRHGaPa(1) AAS
C#でリークやらかす奴がC/C++でやらかさない道理がない
932: (ラクッペ MM35-gTal) 2018/06/02(土)20:31 ID:eSvYHUXNM(1) AAS
こいつもトンチキなので放置でいいです
933
(1): (ササクッテロラ Sp05-wk7t) 2018/06/02(土)20:50 ID:wt7oIb0Vp(2/2) AAS
まあ、でもC#はメモリー管理を隠蔽しちゃったから、実はCやC++よりメモリー管理しにくいんだよな。
934: (ワントンキン MMb5-67BG) 2018/06/02(土)20:58 ID:msgJi+IZM(4/5) AAS
C++出身のC#初心者にありがちだね
935: (ワッチョイ 4a15-ZeuL) 2018/06/02(土)21:10 ID:u/NNd5OV0(1/2) AAS
未確認飛行のSpan説明みてサンプルコード動かそうとしたんだけど
using System.Memory;すると
CS0305ジェネリック種類 'Memory<T>' を使用するには、1 型引数が必要です。
って叱られるのなんで?
VSもCoreも最新
936: (ワントンキン MMb5-67BG) 2018/06/02(土)21:20 ID:msgJi+IZM(5/5) AAS
SpanはSystem.Spanだ
937
(1): (ワッチョイ 4a15-ZeuL) 2018/06/02(土)21:33 ID:u/NNd5OV0(2/2) AAS
System.Spanにしてもでてきおる
using static System.Memory<string>;
ってするとエラーは消えた
938
(3): (ワッチョイ d696-NLsb) 2018/06/03(日)17:57 ID:nwnHFAsS0(1/4) AAS
フォームアプリでマウスクリックでイベントをはっせいさせているのですが、
ある処理ループの実行中はこのクリックイベントの割り込み発生を禁止させたいです。
マウスクリック割り込みイベントを無効化、有効化する方法ってないでしょうか?
939
(1): (ワントンキン MMb5-67BG) 2018/06/03(日)18:03 ID:acSSis/XM(1/2) AAS
>>937
そうじゃないusing System;ってこと
940
(1): (ワッチョイ 259a-msj4) 2018/06/03(日)18:05 ID:5sPxkTAt0(1) AAS
>>938
イベントの購読とその解除
外部リンク[html]:ufcpp.net
941: (アウアウカー Sa5d-SvXf) 2018/06/03(日)18:07 ID:qpwWeWwga(1) AAS
>>938
-=、+=
デザイナーみればわかると思うよ
942: (アウアウエー Sa22-UB1l) 2018/06/03(日)18:08 ID:imVGa92Ya(1/3) AAS
>>938
Control.Enabled
どうでもいいけど、「割り込みイベント」って表現は間違ってるから他所では使わない方がいいよw
943
(1): (アウアウウー Sa09-NLsb) 2018/06/03(日)18:26 ID:y7bK61pJa(1) AAS
処理中フラグ持っておいて
クリックイベントの入り口で処理中ならreturnするのでよくない?

bool 処理中=false;

クリックイベントの頭
if(処理中)return;
944: (ワッチョイ 018a-75sl) 2018/06/03(日)18:33 ID:3EuqECGs0(1) AAS
lockで囲めば
945: (ワントンキン MMb5-67BG) 2018/06/03(日)18:43 ID:acSSis/XM(2/2) AAS
ボタンからしか起動しない処理だと保証されてるなら-=+=でもフラグでもいいが
そうでないなら真面目に並列処理管理しないとね
946: (ササクッテロラ Sp05-wk7t) 2018/06/03(日)18:59 ID:4vwgZnFjp(1) AAS
はあ?
クリックイベント自体を抑止したのか?
意味あるの?
947: (アウアウカー Sa5d-GynM) 2018/06/03(日)19:18 ID:bhcyF/oUa(1) AAS
処理ループの中でメッセージループを実装してGetMessage()でマウスイベントをフィルターかな?或いは読み捨てる
948
(1): (ワッチョイ d5b5-wk7t) 2018/06/03(日)20:09 ID:pjD3SZS60(1) AAS
え、連打対策してないの?
949: (アウアウカー Sa5d-SvXf) 2018/06/03(日)20:15 ID:OWt1glR4a(1) AAS
非同期で実行した場合とかの抑止とか?とエスパー
950
(1): (ワッチョイ 4a15-ZeuL) 2018/06/03(日)20:19 ID:S4J0YpoT0(1/3) AAS
>>939
つまりSpanを使うのにusing System;さえすればいいってこと?
ごめんな、クソ素人過ぎて質問がまずいのか

外部リンク:ufcpp.net

var s = "abcあいう亜以宇";

var sub = s.Substring(3, 3);
var span = s.AsReadOnlySpan().Slice(3, 3);
省5
951: (ワッチョイ 21e3-5Q+M) 2018/06/03(日)20:26 ID:klvCZP9p0(1) AAS
>>933
やっぱりそうだよね
厳密にやろうと思ったら昔ながらの方法でやるしかないんだよね
952
(1): (ワントンキン MM8a-67BG) 2018/06/03(日)20:50 ID:H2Gh+VvdM(1) AAS
>>950
現時点ではAsReadOnlySpanが存在しないっぽいね
Stringはもともと読み取り専用だからAsSpanでReadOnlySpanになるってことだと思うけど
過渡期の記事はそのまま鵜呑みにしない方がいいぞ
953: (ワッチョイ d696-NLsb) 2018/06/03(日)21:25 ID:nwnHFAsS0(2/4) AAS
>>940
全く知らない概念でした。
勉強してみます。
954
(1): (ワッチョイ d696-NLsb) 2018/06/03(日)21:26 ID:nwnHFAsS0(3/4) AAS
>>943
これうまい手ですね。
使える場所ありそうですので試してみます。
955
(1): (ワッチョイ d696-NLsb) 2018/06/03(日)21:27 ID:nwnHFAsS0(4/4) AAS
>>948
おっしゃる通りで、連打対策必要だったんですね。
フォームアプリだと必須の対策なんですね。
他で少し変な挙動してたのは連打対策してなかったことが原因のようです。

連打対策してみます。
というか、どうやればいいんだろ。
また、お勉強しなければ。
956: (ワッチョイ d69a-msj4) 2018/06/03(日)21:42 ID:0r68Qt9D0(1) AAS
>>955
いま質問した答えをイベントメソッドに組み込めば連打対策は終了
そっちを先に覚えるのが普通だと思ってた
957: (アウアウエー Sa22-UB1l) 2018/06/03(日)21:51 ID:imVGa92Ya(2/3) AAS
>>954
全然うまい手じゃないw
PC-98の時代じゃあるまいし、フラグって言葉を聞いたら眉に唾して聞かなきゃダメwww
それを好むのは可読性に感心がないダメグラマの可能性が高いw
958
(1): (アウアウエー Sa22-UB1l) 2018/06/03(日)21:56 ID:imVGa92Ya(3/3) AAS
そもそもUIのデザイン論なんて大げさな話じゃなくても、
ユーザーの捜査に反応できない文脈では何らかの方法(通常はグレイアウト)でそれを
ユーザーに対して明示しないUIは問題あるでしょうww

そんなことにも思い至らない回答者は無視していいよw
959: (ワッチョイ 4a15-ZeuL) 2018/06/03(日)22:53 ID:S4J0YpoT0(2/3) AAS
>>952
ありがとう、そういうこともあるんだな
勉強になった

10Gくらいの固定長テキストファイルから一行ずつ読み取って
最初の1-10文字はUSER ID、11はSEX・・・って分けてdbに突っ込んでるんだけど
StringBuilderでLength=0しつつappendするくらいじゃ、stringでsubstringするのとあまり変わらなかったんで
Span使えばマシになるのかなと思ったんだ
960
(1): (アウアウウー Sa09-CKCa) 2018/06/03(日)23:00 ID:8gLBE5WNa(1) AAS
そんなもん丸ごとDBにロードしたほうが速いだろ
固定長ファイルのロードはどのDBMSでもコマンド一発でできる
961: (ワッチョイ 4a15-ZeuL) 2018/06/03(日)23:12 ID:S4J0YpoT0(3/3) AAS
>>960
それなw
tempのカラムに一行まるごと突っ込んで、クエリでsubstrするやり方やってみる
外部リンク:stackoverflow.com
962
(1): (ワッチョイ d6c9-msj4) 2018/06/03(日)23:35 ID:iikfdxhC0(1) AAS
10GBのデータだと読取よりDBMSへの書き込み方法がネックになりそう
963: (ワッチョイ 4a15-ZeuL) 2018/06/04(月)06:33 ID:mxEQUVjg0(1) AAS
>>962
細かくなるとdbスレ行きなんだろうけど
実際に書くところはC#なわけで、どこがボトルネックになってるのかザコ過ぎてわからんw
とりあえずsqliteつかってメモリ上dbにinsertでトランザクション管理しっかりやってってして30分くらいだったからまーいいかと
sql server expressだとbulk insertはわからんけどselectで並列処理されるみたいだから乗り換えてみる予定
964: (アウアウウー Sa09-NLsb) 2018/06/04(月)11:04 ID:MivBMbBxa(1) AAS
sql server expressはひっくるめたDBサイズが最大10 GBまでだったと思うが
965: (ワッチョイ 018a-75sl) 2018/06/04(月)11:06 ID:UeJV2JW90(1/2) AAS
メモリしこたま積んでRedisかな
966: (ブーイモ MM9a-CKCa) 2018/06/04(月)14:26 ID:pPavJvQvM(1) AAS
Postgresでいいよ
ロード時に固定長レコードのフォーマットを指定できるから一時テーブルもC#もいらん
967
(2): (ワッチョイ cd24-sZ2J) 2018/06/04(月)16:33 ID:7NrmQXKK0(1) AAS
MonoのLinux版のインストールの仕方、ご教示いただけますと有難いです。宜しくお願い致します。
968: (ワッチョイ d6e8-NLsb) 2018/06/04(月)16:48 ID:aK/XyO250(1) AAS
米Microsoftが米GitHubを買収することで合意
外部リンク[html]:www.itmedia.co.jp
969
(1): (ワッチョイ 018a-75sl) 2018/06/04(月)20:38 ID:UeJV2JW90(2/2) AAS
>>967
ちょまど神を信仰すると天啓が降るぞよ
970
(3): (アウアウウー Sa09-CKCa) 2018/06/04(月)20:43 ID:CVKZewtza(1) AAS
>>967
Monoなんか今時もう誰も使ってないし誰もメンテしてないでしょ
今は.NET Coreの時代
GUIが目当てなら諦めなさい
971: (ワッチョイ 45eb-sZ2J) 2018/06/04(月)20:52 ID:spHrXgPF0(1) AAS
UbuntuでもCentOSでもコマンド一発で入るがな
972: (ワッチョイ fad2-L98v) 2018/06/04(月)21:35 ID:ztrCxIDM0(1) AAS
>>970
何言ってんの?
973
(1): (ワッチョイ 4aeb-xcqf) 2018/06/04(月)21:48 ID:9+XsYcyB0(1) AAS
Windows.Forms で WndProc を override して自分のコードを加えているのですが
デバッガで進めていくと、その中に突入してしまいます。

InitializeComponent の中みたいに、デバッガが入らなくする宣言みたいなものなかったですか?
974: (アウアウウー Sa09-CKCa) 2018/06/04(月)21:49 ID:BHtXacEqa(1) AAS
>>973
debuggerstepthrough
975
(1): (ワッチョイ b117-NLsb) 2018/06/04(月)21:56 ID:Uz3WpYRO0(1) AAS
>>970
Mono Releases | Mono
外部リンク:www.mono-project.com
976
(2): (ワッチョイ 4e8b-fUxx) 2018/06/04(月)23:32 ID:054Q3E4O0(1) AAS
メインクラスとシリアル通信クラスの2つを使っています
シリアル通信の受信完了でイベントをメイン側に発生させることら可能でしょうか。受信完了したらメイン側から受信データを取りに行くようにしたいのですが。
977
(1): (アウアウエー Sa22-UB1l) 2018/06/05(火)00:07 ID:jE9yEXCCa(1) AAS
>>976
何でそうなるのw
発想が逆だってw

そのシリア通信を担当するクラスSがデータ受信を通知するイベントを発生させて
受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw

ついでに言えば受信データもEventArgs使って渡してしまえばいい
978: (ワッチョイ d681-gTal) 2018/06/05(火)00:33 ID:liKML/cX0(1) AAS
しょうがねえだろ初心者なんだから
979
(2): 976 (ブーイモ MMbe-fUxx) 2018/06/05(火)07:18 ID:ByFVOB9IM(1) AAS
>>977
やりたいのことはそれなんですよw
説明が下手ですいません
厳密にはデータを受けた事が分かったらメイン側は受信データの内容を解釈するクラスに送って処理分岐という形にしようかと思ってます。
用語や処理の知識がおいついてきてないので、あれを応用しようという感じにならず、調べるためのキーワードも出てこないです。

>>クラスSがデータ受信を通知するイベントを発生させて受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw

ここが具体的にどういう構文になるのでしょうか。
980
(1): (アウアウカー Sa5d-GynM) 2018/06/05(火)08:07 ID:D4M8TybKa(1) AAS
Signalを使っても作れるな。
981: (ワッチョイ fa11-W/zB) 2018/06/05(火)09:11 ID:GjVlFAo70(1/2) AAS
>>958
PCをあまり使い慣れてない人とか、ボタンはシングルクリックでいいのをダブルクリックしちゃったりとかあるんだよなこれが・・・
982: (アウアウカー Sa5d-SvXf) 2018/06/05(火)09:29 ID:nr/+sOXHa(1/2) AAS
非同期じゃないならボタンイネーブル切ればいいだけじゃね
983: (アウアウカー Sa5d-SvXf) 2018/06/05(火)09:32 ID:nr/+sOXHa(2/2) AAS
すまん。忘れてくれ
984: (アウアウウー Sa09-NLsb) 2018/06/05(火)10:35 ID:l/0/VM/ma(1) AAS
状態をGUIだけに持たせておくのはおかしいといつか思うはず
985
(4): (アウアウエー Sa22-UB1l) 2018/06/05(火)12:11 ID:vCTdp4Eha(1/4) AAS
>>979
class FrameReceivedEventArgs:EventArgs
{
  public byte[] Frame{get; private set;}
  ....
}

class CommunicationPort
省16
986
(1): (ブーイモ MMbe-CKCa) 2018/06/05(火)12:44 ID:eGZjT6RJM(1/2) AAS
>>985
引数に渡されたものを弄るのは行儀の悪い設計
IReceiverインターフェイスみたいなのを用意してport.AddReceiver(decoder)とするか、
>>979の言葉通りにいったん双方のクラスの外でイベントハンドラで受けて仲介したほうがいい
987: (ブーイモ MMbe-CKCa) 2018/06/05(火)12:51 ID:eGZjT6RJM(2/2) AAS
>>985がなぜ行儀が悪いか補足しておこうか
普通、オブジェクトを別のクラスのコンストラクタに渡すとき、プログラマは 受け取った側→引数側 の向きの参照ができることを期待する
ところが、>>985だとそれが逆なんだよ
new FrameDecoder(this.port) としただけで、portがGCされないかぎり作り捨てたはずのFrameDecoderがGCされないという、非直感的なコードになるわけ
988
(1): (アウアウエー Sa22-UB1l) 2018/06/05(火)12:55 ID:vCTdp4Eha(2/4) AAS
何言ってるのかさっぱりわからん
よくわからん思考回路だな...
989
(1): (ワッチョイ fa11-W/zB) 2018/06/05(火)13:09 ID:GjVlFAo70(2/2) AAS
言い回しがようわからんが
>>985みたいなのするのが解放されないオブジェクトを量産するっていうのはなんとなくわかる
990
(1): (アウアウウー Sa09-CKCa) 2018/06/05(火)13:11 ID:vyKZFDS5a(1) AAS
>>988
分からないならイベントというものを正しく理解してないんじゃないかな
ボタンのクリックイベントをフォームが受け取れるのは、ボタンがフォームへの参照を(実際には間にデリゲートが入るので間接的にだが)持ってるから
基本的に、引数に渡ってきたものに自分自身を登録するのは避けたほうがいい
オブジェクトのライフタイムが非常に分かりにくくなるから
991: (ワントンキン MM8a-67BG) 2018/06/05(火)13:53 ID:UBCugO63M(1) AAS
reactive extensionsって.NET発祥なのに使う人少ないよね
992: (ワッチョイ cd24-lkdC) 2018/06/05(火)15:23 ID:n583dJR10(1/3) AAS
>>969
ちょまど神って???状態でしたので調べてみました。
一つ知識が増えました。ありがとうございます。
993
(1): (ワッチョイ cd24-lkdC) 2018/06/05(火)15:24 ID:n583dJR10(2/3) AAS
>>970
そうなんですか。。。
NET Coreっての調べてみます。どうも有難う御座います。

ちょど昨日 GUI って何だ??って検索したばかりでした。
3日前からプログラムの勉強をはじめたばかりで。。。
994: (ワッチョイ cd24-lkdC) 2018/06/05(火)15:24 ID:n583dJR10(3/3) AAS
>>975
ありがとうございます。TRYしてみます。

この掲示板すごーい!!皆様に感謝です。
995
(1): (アウアウエー Sa22-UB1l) 2018/06/05(火)16:15 ID:vCTdp4Eha(3/4) AAS
>>989
ないないw
イベントの購読解除はリークの原因になるのはその通りだけど、
それは>>986が主張するように、イベントを発生するオブジェクトを引数で受け取ったかどうかと無関係。

>>990
俺は理解してないのは君の方だと思うよw
その君のいう俺様ルール、何が悪いのかさっぱり分からない
省2
996: (アウアウエー Sa22-UB1l) 2018/06/05(火)16:16 ID:vCTdp4Eha(4/4) AAS
あ、

× イベントの購読解除
〇 イベントの購読解除忘れ
997: (ワッチョイ d69a-msj4) 2018/06/05(火)19:31 ID:70UTtyrn0(1/2) AAS
次スレたててみる
998
(1): (ワッチョイ d69a-msj4) 2018/06/05(火)19:33 ID:70UTtyrn0(2/2) AAS
ふらっと C#,C♯,C#(初心者用) Part138
2chスレ:tech
たった
議論は他のところでよろしく
999: (アウアウウー Sa09-CKCa) 2018/06/06(水)00:18 ID:+J9HGVUKa(1) AAS
>>995
想像力のない人だなあ
>>985だと、イベントハンドラの登録を解除しない限り、FrameDecoderが不要になっても
登録先のCommunicationPortよりも先にGCされることは絶対にない。
じゃあ不要になったらイベントハンドラを登録解除できるようにしよう。いつ解除する?
それはFrameDecoder自身には分からない。知っているとしたら、それは>>976のいうメインクラスだろう。
登録解除するにはFrameDecoderクラスのDisposeメソッドを呼べ、という仕様にするか?
省3
1000: (アウアウカー Sa5d-SvXf) 2018/06/06(水)00:26 ID:D75pa1n0a(1) AAS
質問いいですか?
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 6時間 46分 14秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s