X



ふらっと C#,C♯,C#(初心者用) Part139
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
0258デフォルトの名無しさん
垢版 |
2018/08/28(火) 19:52:33.60ID:QdKJddNI
コンパイラの最適化の問題でしょ?
非同期処理で使うフィールドはいれときゃいいんじゃね
0259デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:25:43.56ID:M3D05fOs
ちなみに「お作法」という言葉を使う人間が書くコードは間違ってます
マメな
0260デフォルトの名無しさん
垢版 |
2018/08/28(火) 20:43:21.83ID:sKgj8tWl
>>251
もう作成されたILのコード全部確認・検証しとけよ
問題が起こらない方がいいのに何か起こらないと困るように見える
0261デフォルトの名無しさん
垢版 |
2018/08/29(水) 01:22:33.42ID:4YeISD0k
>>251
C#ひいては.NET CILではJITないしAOTのコンパイルにかかる時間など故か
ネイティブC/C++程の最適化は行われないので具体例は難しいかもしれません

ということでネイティブC++(プログラム全体の最適化は無効)を例にしてみると
int n;
int main() {
n = 1;
n = 2;
return NO_ERROR;
}
上記コードは関数内でn = 1時点を参照してないし、最終的にn = 2じゃんという事で
「n = 1;」が削られマシンコードは「mov dword ptr [n], 2」とリターンコードのみに成ったりします
参照の場合においても変数の値を逐一読み込まずレジスタに保持して使い回すかもしれません
これを「volatile int n;」と修飾すれば、そのような最適化は抑制されます

C#コンパイラ(C#→CIL)レベルでは読み書きにvolatile.接頭辞などが付く事になる筈
https://msdn.microsoft.com/ja-jp/library/system.reflection.emit.opcodes.volatile
ECMA-335やJIS X 3016といった言語仕様にも記載されていますが、排他制御云々ではありません
0263デフォルトの名無しさん
垢版 |
2018/08/29(水) 03:59:58.56ID:B+rDuEfA
C#のデストラクタってどういう場面で必要なんでしょうか?
ネットの記事で見かけたところ
C++ではコンストラクタとセットでプログラマがマネージする必要があるが
C#ではシステムが自動でやるのであまり重要じゃないとありましたが
イマイチよく分かりませんでした
Win32API関数をマーシャリングして使用したりするとデストラクタは必要でしょうか?
実はそういうプログラムを自作してずっと使用してるのですが
デストラクタを書いてなくても特に問題が発生したことがありません
問題が出ないのはたまたま自分の使用環境が合ってるだけでしょうか?
デストラクタを書かないと具体的にどういう不具合が起こるんでしょうか?
0264デフォルトの名無しさん
垢版 |
2018/08/29(水) 05:59:16.57ID:saiWj2Qp
ファイル・データベース・プロセスなどのリソースが解放されないから、
使用メモリサイズがドンドン大きくなっていく

つまり、メモリリーク
0265デフォルトの名無しさん
垢版 |
2018/08/29(水) 09:22:23.43ID:o37zBcM2
>>264
ありがとうございます
その「使用メモリサイズ」というのは
タスクマネージャーの「メモリ」という所を見ればいいのですか?
0267デフォルトの名無しさん
垢版 |
2018/08/29(水) 09:55:10.31ID:o37zBcM2
>>266
windowsデフォの管理ツールに「リソースモニタ」ていうのもありますね
これでもいいのかな?
初耳な分野なので全く分かりませんが調べてみます
ありがとうございました
0268デフォルトの名無しさん
垢版 |
2018/08/29(水) 21:29:00.98ID:xKUAwzTF
C♯にて数あるエクセルファイルの中身を読み取りあれこれしたい時、早く開いて読み取って閉じる方法ってありますか?
0270デフォルトの名無しさん
垢版 |
2018/08/29(水) 22:02:30.99ID:XA15QLm3
>>268
「あれこれ」じゃなく具体的に何がしたいか書かないと
やりたいことが多くなるほど「じゃあエクセルで直接開いた方が早いね」になるだろうけど
0272デフォルトの名無しさん
垢版 |
2018/08/30(木) 03:48:10.84ID:Aa4o8Duk
>>268
バイナリーで読み込むのが最速
0273デフォルトの名無しさん
垢版 |
2018/08/30(木) 07:21:13.96ID:oIUtx1rS
>>270
@シート名の読み込み。
A指定シートの指定列の読み込み。
B指定シートの指定行の読み込み。

こんな感じのを各エクセルに@〜Bを繰り返し行う。

ネットを参考に見て普通に開いて閉じるだと遅くて...
0274デフォルトの名無しさん
垢版 |
2018/08/30(木) 09:55:38.76ID:l8OdYu1h
>>273
ExcelDataReaderでも満足できないレベルに遅いの?
だとしたらほぼ無理かと
Excel側で予め必要になる情報をVBAとかでtxtファイルに出力しとくとかで対処するしかなさそう
0275デフォルトの名無しさん
垢版 |
2018/08/30(木) 12:24:59.82ID:8MIxRZMr
>>273
ネットで参考にした情報はOLEでExcelを起動して読み込む方法かね?
それは遅いからOpen XML SDKでも使って直接ファイルを読んだ方がいいね
0276デフォルトの名無しさん
垢版 |
2018/08/30(木) 17:27:14.97ID:Cn/2yBNm
質問させてください!

VisualStudio2017のC#Formアプリで自分用のテキストエディタを作ろうとしていて、
「改行した時、一行前の行頭に全角スペースがあった場合次の行頭にも全角スペースを挿入する」
というちょっとした自動インデントのような動作をさせたいのが目的です。

探り探りで一応目的の動作をするコードは書けたのですが、
「KeyUpからエンターキーの場合のみ分岐して座標をひとつ戻してから改行かどうかを確かめて、
 行数を調べて一文字切り出してからカーソル位置を戻して比較して……」
をはじめとする行程で相当に回りくどいことをやっているような感覚があるので
もっとスマートな方法はないものかと思い質問に来ました。

どうぞよろしくお願いします。

https://ideone.com/8J7uBK
0278デフォルトの名無しさん
垢版 |
2018/08/30(木) 18:56:29.70ID:2QdSuJnz
task難しすぎない…?
非同期が難しいのは当然だけどこんな躓いたのc#が初めて
0279デフォルトの名無しさん
垢版 |
2018/08/30(木) 19:01:33.74ID:16om6f/5
スレッドのシーケンシャル図みたいなのに書き出すといいよ
まあスレッドセーフな構造を理解してるのが大前提だけど
0283デフォルトの名無しさん
垢版 |
2018/08/30(木) 19:25:02.55ID:2+/sJ3kY
>>276
読み辛すぎるw

っていうか、これ本当にちゃんと動く?
KeyUp発生した時点で入力したキーがTextに反映されてる前提になってると思うけどそうだっけ?
0285デフォルトの名無しさん
垢版 |
2018/08/30(木) 20:37:16.45ID:4drhoSMA
>>276
行頭に全角スペースが入力されたときにフラグ立てる
というのはどうかな

文字列型フラグ変数に行頭に入力された全角スペースを突っ込んでおいて
改行でフラグ変数の値を行頭に挿入とか
行頭全角スペースが削除されたらフラグも空文字列にしないといけないけど
0286デフォルトの名無しさん
垢版 |
2018/08/30(木) 20:42:40.52ID:2QdSuJnz
https://ideone.com/0aD1lJ

>>278で質問したものだけどコードで書いたので下の疑問が正しいのか教えてください
A:ここで並列にダウンロードできているのか?
B:Resultを使うとデッドロックすると聞いたけどawaitしていれば大丈夫?
0287デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:00:14.61ID:Assw0OKp
>>285
行全部のフラグ作るのとテキスト読み込むときにフラグ作る必要があるが
何万行とかで構成されるテキストでもそれやるの?
動くのなら>>276の方がまだ楽だと思う
0290デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:26:02.80ID:Yh+aUVCO
>>286
A: DownloadAsyncが真っ当に実装されていれば並列ダウンロードになる
(真っ当ではない例: 同期的にダウンロードしてTask.FromResult)
B: Task<TResult>.Resultはタスクが終了済みなら即座に値を返すので、デッドロックしない
ちなみにTask<TResult>.WhenAllはTask<TResult[]>を返すから
return (await Task.WhenAll(tasks)).ToList();
でも行けるはず
0291デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:26:33.91ID:qGVo2Ysa
Open XML SDK生で使ったことあるけど、もうちょっと頑張れなかったのかと言いたい
中のファイルメモリに乗っけてシートごとの並列処理出来るかと思ってたのに全然だし、セルの位置はR1C1限定とかマジで死ねよ
0292デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:27:27.97ID:jRU2Egdi
>>288
Open XML SDKはWordなんかも含むOffice製品全部のSDKちょっと直感的じゃないから
ラッパーで多少はExcel VBAライクなClosedXMLとかNPOIとかの話と思われ
0293デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:27:50.35ID:2+/sJ3kY
>>276
まあケチ付けるだけなのもあれなんで
俺ならこうかなあ
無駄なフィールドを作らないために無理矢理ラムダ式使ってるけど本当はこういうのよくないかも

class TextBoxEx:TextBox
{
  protected string GetIndent(int line)
  {
    var s = Lines[line];
    var m = Regex.Match(s, @"^[  \t]*");
    return m.Value;
  }

  protected string GetIndent()
  {
    return GetIndent(CaretLine);
  }

  public int CaretLine
  {
    get { return GetLineFromCharIndex(SelectionStart); }
  }
0294デフォルトの名無しさん
垢版 |
2018/08/30(木) 21:28:10.88ID:2+/sJ3kY
  protected override void OnKeyDown(KeyEventArgs e)
  {
    base.OnKeyDown(e);
    if(e.KeyCode == Keys.Enter)
    {
      var indent = GetIndent();
      EventHandler eh = null;
      eh = (sender, ea) =>
      {
        TextChanged -= eh;
        SelectedText = indent;
      };
      TextChanged += eh;
    }
  }
}
0297デフォルトの名無しさん
垢版 |
2018/08/30(木) 22:15:02.92ID:jRU2Egdi
>>295
>>282はSDKという単語に対してライブラリという単語を使ったんだだと思うぞ
(それにOpen XML SDKはソース公開されてるものの
MSしかコミットしてない実質プロプラなのでOSSと呼ぶの違和感あるのもあると思う)

>>275の質問レベルに対してSDKを出すのは
それこそもっと便利なOSS書けよって話
ここ初心者スレだぞ
0299デフォルトの名無しさん
垢版 |
2018/08/30(木) 23:39:14.89ID:4drhoSMA
>>287
そう言われるとそうだな
もっとよく考えないとダメだったな

テキストエディタ舐めてたわ
0300デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:01:56.93ID:4iUWs/UZ
var config = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: @"XXX_")
.Build();

services.Configure<MyOptions>(config.GetSection("MyOptions"));

class MyOptions {
public int Foo { get; set; }
public int Bar { get; set; }
}

---env---
export XXX_MYOPTIONS_FOO=1
export XXX_MYOPTIONS_BAR=2


ヒエラルキーを持った設定を環境変数に入れたいのだけどコロンを環境変数の識別子に使うとOSに怒られる
アンダーバーにすれば環境変数をセットできるけど今度はIOptionsパターンがヒエラルキーを認識してくれない
なんかイケてる対処法ないんか?
0301デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:12:53.87ID:0MAifXJX
>>299
ギガ単位のテキストファイルを編集できるエディタって意外とないのよね
ログファイルとかで需要はありそうなのに

昔、探したけど無かったからけっこう苦労して自作したわ
0302デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:14:40.87ID:4ZfpOo1s
そんなもんをエディタで編集しようというのが
そもそもの間違い

sedで十分
0303デフォルトの名無しさん
垢版 |
2018/08/31(金) 00:18:44.01ID:4ZfpOo1s
ギガ単位のファイルなんか
結局検索しないと編集箇所を特定することなんかできない
もしかしてギガ単位のファイルを目視で編集箇所特定してんの

どんだけ頭悪いねんと。。。
0304276
垢版 |
2018/08/31(金) 03:32:18.34ID:ogs0aMAV
>>277
こんなもんなんですね!?
テキスト入力を広げていくだけだから初心者向きだと思って始めたのですが
びっくりです……でも組み上げていくのは楽しい……

>>283 >>293
当方プログラミング3日目ゆえ……読み辛くてすまぬ……すまぬ……
コードありがとうございます!
すでに用意されているものを組み合わせることしか考えてなかったので
Textboxのクラスごと作ってしまう方法は目から鱗でした!
GetLineFromCharIndexメソッドの存在すら知らなかったので
これだけで無限に簡略化できそうな気がします……
本当にありがとうございます、色々弄ってみます!

>>285
既存のファイルを読み込んだ時に改行しやすくするのが目的なので
>>287さんの言うとおり一行一行フラグ立てていく方式は厳しいかなと思いました……!
リアルタイムで少ない文章を入力していくならそのぐらい簡素でも
いいと思うのですけれどね! むずかしい!


おかげで先に進めそうです、ありがとうございましたー!
0305デフォルトの名無しさん
垢版 |
2018/08/31(金) 03:47:24.61ID:ogs0aMAV
れんとうしつれいします
いざググって調べてclass TextBoxEXの意味を勘違いしていた事に気付いたため
レス内容は笑い流してあげてください 正しい意味を知って本当に目からウロコでした
ありがとうございました!!
0306デフォルトの名無しさん
垢版 |
2018/08/31(金) 06:16:33.32ID:WaaqYsvL
>>298
たぶん>>297と同類でOpen XML SDKがOSSなのを知らなかったんだろうな
実質プロプラとかわけわからんこと口走って恥の上塗りしてるし w
0308デフォルトの名無しさん
垢版 |
2018/08/31(金) 07:41:37.25ID:Sw5Wccxa
>>304
3日目なら他にやることあるだろ
0309デフォルトの名無しさん
垢版 |
2018/08/31(金) 08:23:57.84ID:ogs0aMAV
>>308
どんな技術も取り敢えず自分がやりたい事から始めて
壁にぶつかったら都度必要な事を調べていけば上手くなると思っているのですが違うのでしょうか……?

どうにか自力で一応の形にして目的を実現するところまではやって、
本当にそれが正しいのか調べて見つけることができなかったから質問させて頂いた状態なので
他にやる事と言われても何をすればいいのかわからないです、すみません……
0310デフォルトの名無しさん
垢版 |
2018/08/31(金) 08:44:51.07ID:6aCB/3AZ
>>304
普通はこんなもんじゃないよ
テキストボックスにデータを持たせるんじゃなくて別にプログラム内部にデータを持たせて
それを表示に反映させる感じ
0311デフォルトの名無しさん
垢版 |
2018/08/31(金) 12:29:19.65ID:iUPXUGud
>>309
それでいいんだよ、そうやって覚えていくのが一番いいと思う
とにかく作ってみないとわからないからね

作る喜びを感じられれば伸びていく
リファクタリングもバージョンアップもどんどん
やってみるのがいいと思う
0312デフォルトの名無しさん
垢版 |
2018/08/31(金) 13:51:05.81ID:Sw5Wccxa
>>309
取説読まずにサポセン電話する迷惑なタイプ
0313デフォルトの名無しさん
垢版 |
2018/08/31(金) 15:13:11.36ID:ogs0aMAV
>>310
な、なるほど! そうすれば一行毎に表示を弄ったりとかの細かい事もできそうですね!
でもリアルタイムで打ち込んだデータを内部に移しながら表示領域に戻して……とやるのは結構
大変そうな気がします。世の高機能テキストエディタはそういった苦労の上に作られているのですね……。

>>311
ありがとうございます、頑張ります!
実際スレに貼って頂いたコードの正規表現命令が通らないことで
Text.RegularExpressionsの存在を知ったりと無知ゆえの見落としも結構あるのですが、
自分の知識と思いつく検索ワードで詰めれるところまでは自分でやって成長していきたいです!

>>312
可能な限り調べきってから問い合わせてはいるのですが
なにぶん取説が広辞苑レベルなので……索引力不足、恐縮です
どうにもならなくなったらまたご迷惑かけます
0314263
垢版 |
2018/08/31(金) 16:29:19.58ID:vo9ITXw3
先日デストラクタについて教えてもらった者ですが
やはりメモリリークしてましたwww
起動時は6Mくらいだったのが終了時には10Mになってました
少しだったから大きな問題にならなかったってことですorz
でも「実用上は問題無いけどゴミいっぱいまき散らしやがって!」
って怒られますよね・・・
でデストラクタを勉強し始めたのですがさっぱり分からん!
マーシャリングして使ってるAPI関数が問題なんだろうとはわかるけど
どのタイミグで何処でデストラクトするのかとか
IDisposableイベントの発生のさせ方とか
C++から勉強しないとダメかな?
先は長いなあ
0315デフォルトの名無しさん
垢版 |
2018/08/31(金) 16:33:50.31ID:7EVWbyOU
いや6M→10Mはメモリリークしてなくても.NETならそんなもんだぞ
長いことモニタしてればわかるけど、フルGCが走れば減る
0316デフォルトの名無しさん
垢版 |
2018/08/31(金) 16:48:31.15ID:vo9ITXw3
>>315
え?そうなの?
その程度じゃメモリリークしてるとは断定できない?
もう一度検証してみますだ
0317デフォルトの名無しさん
垢版 |
2018/08/31(金) 17:39:33.85ID:cQtmAsyE
>>314
https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/dispose-pattern
ただし和訳は機械翻訳だから読めるなら英語版おすすめ

WINAPIで取得したリソースはアンマネージリソースだから、上の記事のComplexResourceHolderのように
Dispose(bool disposing)内で、disposingの真偽に関わらずアンマネージリソースを解放するのが正解

あとC++とC#ではどちらもデストラクタという用語はあるが
C++のデストラクタはC#ではDisposeが対応する概念
C#のデストラクタはDisposeし忘れた場合の救済措置
0318デフォルトの名無しさん
垢版 |
2018/08/31(金) 17:43:15.60ID:dU0KocTd
>>314
盛大に勘違いしてそうだけど、C#のデストラクタは
そのクラスのインスタンスを利用するプログラマがDisposeを呼ぶコードを
書き忘れた(つまりバグ)場合のフェイルセーフ以上の意味は通常はないっすよ
つまりIDisposableを実装しないなら普通はファイナライザも必要ない

ファイナライザは何か不思議な力でリークを解決してくれるマジックじゃありませんw


初心者がごちゃごちゃ頭の中でくだらないこと考えても意味ないよ
どうせそんなの盛大に間違ってるw

そんな暇があったら理解できなくても少しでもドキュメントを読んだ方がいい
0319デフォルトの名無しさん
垢版 |
2018/08/31(金) 18:08:24.51ID:eNdvG/21
SqlConnectionクラスでDB操作するのですが、ACID特性の担保は設計でやるのでしょうか?SqlConnectionとDBMSが隠蔽してくれるのでしょうか?

複数ユーザー利用時のトランザクションのロックとか自力実装する必要があるのかなと思い
0320デフォルトの名無しさん
垢版 |
2018/08/31(金) 20:55:02.11ID:k+Te8Uzr
>>310
毎回テキストボックスをクリアして反映するの?
それとも差分を抽出してその部文だけ表示を変更するの?
0322デフォルトの名無しさん
垢版 |
2018/08/31(金) 21:47:14.81ID:7EVWbyOU
>>319
ACIDはあくまで利用者から見たシステムの性質
一般的なRDBにはACIDを実現するために必要な機能が備わっているが、それを使ってACIDなシステムを作るのはお前自身だ
アトミックなトランザクションを使ったからってお前のアプリのリクエスト処理が勝手にアトミックになる訳じゃないぞ
0324デフォルトの名無しさん
垢版 |
2018/08/31(金) 22:34:45.87ID:Is8FvumJ
>>314
c#は空きメモリに余裕がある時は積極的にメモリの回収をしないから、一見リークしてるように見える。
IDisposeの使い方は単純で、使い終わったら自分でDispose()メソッドを呼ぶだけ。
Dispose()を呼び出し忘れた時のためにデストラクタからも呼ぶように書くけど。
0325デフォルトの名無しさん
垢版 |
2018/08/31(金) 22:52:13.57ID:iUPXUGud
>>323
本格的なテキストエディタを作るなら
どうしても独自コントロールになるよな

テキストボックスじゃデカいファイルだと無理がある
0327デフォルトの名無しさん
垢版 |
2018/09/01(土) 01:29:15.12ID:ZVoFY83K
デストラーデっていつ発動するんだっけ?
0330デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:17:11.69ID:1Fa0uhaD
>>323
横から失礼。まったくの素人質問で申し訳ないのですけど
独自コントロールのテキストボックスってKeyDown命令を検知したりして
必要な処理を一つ一つ作っていくんですか?

慣れてきたら挑んでみたいけれど何をどこから調べればいいのかわからないので
そのあたりの仕組みやヒントが学べそうなサイトや教本ってあります……?
0331デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:21:41.75ID:+BAvd4bn
>>330
初心者の範疇じゃない
さらに言えば中級者の範疇でもない

c# avalon editorでググればいい

単体でエディタを自作するのは愚かなこと
Visual Studio Codeなどの拡張機能を作るのが正しい
0332デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:26:00.33ID:HRxiLrgz
オープンソースのコードエディタのソースを見れば参考になるかもね
言語は違うけどVSCodeやEclipseなど
0333デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:28:04.00ID:RGySrVo/
メモリ解放の部分だけC++で作成して呼び出せないの?
どう呼び出してメモリのどの部分をどう開放させれるのかとか一切しらんけど
0335デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:40:19.46ID:HRxiLrgz
>>333
Roslynをフォークして自作してみてはどうだろう
未だにこうやって.NET(というかGC)のメモリ管理に不満を言う人が居なくならないということは
決定的なメモリ管理にはある程度の需要が確実にあるということ
そういう人たちのヒーローになれるかもしれない
それでパフォーマンスや生産性が上がると本当に実証されればMicrosoftからもアプローチがあるかも
0336デフォルトの名無しさん
垢版 |
2018/09/01(土) 12:48:05.08ID:c3Y0wsEI
>>330
超簡単に言うとWindowsならAPIのテキスト描画関係の
関数を使ってキーイベントを拾ってとかやっていく
Win32APIでググれば参考になるサイトがいくつも出てくる

言うのは簡単だがやるのはもの凄く大変だけどね

>>331
勉強にはなるけどね
その通り中級者の範疇でもないから、かなり実力を付けとかないといけないな
0337デフォルトの名無しさん
垢版 |
2018/09/01(土) 13:06:24.02ID:1Fa0uhaD
>>331
ありがとうございます! 初心者の範疇ではないとは薄々……!
テキストエディタ特化のライブラリがあるんですね、先人は偉大だ……
最終的には自分で使う用に物書き方面に特化した文章エディタを作りたいので先は長いです
avalonエディタに触れてみながら参考になる部分はないか色々探ってみます!

>>332
確かにC#で作られたものじゃなくても仕組みの理解に繋がりそうではありますね!
基礎の基礎は終えた今なら少しは中身を探れるかもしれないので
探して覗いてみます、ありがとう!

>>336
なるほど、ググりながらよく分からないままに使っていた
User32.Dllまわりの正体がそれなんですね……!?
ありがとうございます、勉強になります! 探ってみます!
色々できるようになりたい!
0340デフォルトの名無しさん
垢版 |
2018/09/01(土) 14:09:16.29ID:P+AKCe3z
>>338
一応GCも自前管理もできる言語もあるらしいし
主流にはなってないみたいだから大多数は特に望んでないのだろうけど
0342デフォルトの名無しさん
垢版 |
2018/09/01(土) 14:39:09.32ID:mjuKggTp
ゲームはそもそもリソース使用量決まってるんだからプレイ中にGC動いたりはしないよ
シーン切り替えと一緒に動かす程度だよ
0345デフォルトの名無しさん
垢版 |
2018/09/03(月) 13:14:32.35ID:oOf4f4g2
>>343
さすがに今時そんな廃棄物は使うなとしか言えない
LinuxならRider買うかVSCodeで我慢しなさい
0346デフォルトの名無しさん
垢版 |
2018/09/03(月) 17:03:56.62ID:dGDVASpD
websoketで大量データ受信しながら他の処理を非同期で遅延なく処理するには、別プロジェクトで共有メモリアクセスがいいか、単純に別スレッドでInvokeするのはどちらがいいでしょうか?
というより、王道な設計パティーンを教えて下さい。
0350デフォルトの名無しさん
垢版 |
2018/09/03(月) 18:08:25.48ID:dGDVASpD
>>347
だめですか?
0352デフォルトの名無しさん
垢版 |
2018/09/03(月) 18:17:15.88ID:oOf4f4g2
受け取った大量データを他の処理で使いたいってことか?
使うのが受け取りが完了してからでいいんだったら普通にファイルに書けばいい
0353デフォルトの名無しさん
垢版 |
2018/09/03(月) 18:24:29.32ID:vcilZH89
>>350
共有メモリを使うと言うことは別のプロセスと通信すると言うことだね
わざわざリソースを食う共有メモリを使って処理速度を遅くして何がしたいんだ?
0354デフォルトの名無しさん
垢版 |
2018/09/03(月) 19:07:52.86ID:EUoYWljm
前スレでシリアルポートの使い方を聞いた質問者か?
相変わらずズレた考え方してんな
0355デフォルトの名無しさん
垢版 |
2018/09/03(月) 19:29:03.44ID:vcilZH89
普通はプロセスごとにメモリが分離しててどちらかがおかしくなっても他に影響しないように作られてる

それを無理やりOSを使って通信してるのが共有メモリで実際は共有してない
0357デフォルトの名無しさん
垢版 |
2018/09/03(月) 19:42:32.34ID:NR0nQ5XR
>>356
ファイル連携で済むくらいにすっぱりと綺麗に分けられるなら分けるべき
共有メモリが必要になるような密な連携が必要なら本末転倒
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況