C#, C♯, C#相談室 Part95
■ このスレッドは過去ログ倉庫に格納されています
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら http://www.visualstudio.com/downloads/ ■コードを貼る場合はこちら http://ideone.com/ ■前スレ C#, C♯, C#相談室 Part94 http://mevius.2ch.net/test/read.cgi/tech/1492843013/ ■次スレは>>970 が建てる事 建てられない場合は他を指定する事。 >>187 プロセス間のデータ受渡はsoket通信する感じ? >>188 勝手に要件作る気なのかw しかも中身まで要エスパーとか 皆さんレスありがとうございました。 >Aが実行中に通知を受け取った場合は? 関数Cを別スレッドで実行したいです。例えばこんなふうに。 void C(){ Console.WriteLine("Bが終わった"); } >Aが終わったあとに通知を受け取った場合は? Aは終わらないと言う前提でお願いします。 >>190 >>186 に出ているだろ というかTaskメソッドをMSDNで調べろよ フラット案件どころかこれだけレスとキーワード出ていて自分で解決できないのならプログラムやめるべき 何でもいいけどすぐ動く完動品が出てくるまでこの調子だと思うぜ どうせソースないんだろ、出てきたものを見ていじって作ろうとしてるんだろ >>190 BとCについてはよく分かった Aが現状どういう処理をしているかによって 解決の仕方が違ってくると思うな コンソールアプリで関連性のない2つの動作を同居させるシチュエーションがわからん マルチスレッドにしたら効率が良くなるってだけの頭の悪い発想じゃね >>187 が当てはまらないのならぜひ教えてほしいくらい >>188 コンソールアプリ同士なんだから、まず標準入出力でダメか考えるべきじゃね ソケット通信が必要ならまあやればいいけど、それだとそもそもコンソールアプリなのが正しいのか疑問だ >>199 ASP.NET Coreなんてもろコンソールアプリだけどな >>199 GUIが必要ないからCUIってプログラムは幾らでもあるが。 >>201 それはGUIが基本なのかCUIが基本なのかの違いであって コンソールアプリである必要性とは関係ないよね 別にGUIを基本にしろって主張じゃないよ ただCUI=コンソールアプリってわけでもないだろうと Task<string>型からstream型に変換するにはどうしたらいいでしょうか? 調べてもよく分からず詰まっています よく分からんけどstringを取り出してからTextReaderかなんかに渡す >>205 https://ideone.com/CfSqOZ こんな感じでurlを投げて返ってきたものをstreamに入れたい // HTTPアクセス var req = WebRequest.Create(url); var res = req.GetResponse(); // レスポンスをオブジェクトに変換 Stream s = res.GetResponseStream(); StreamReader sr = new StreamReader(s); string str = sr.ReadToEnd(); もともとConsoleAppでこう書いて動いてたんだがGUIベースのにしようとしたらGetResponseが使えなかった 代わりにGetResponseAsyncにしたらエラーが出てもっとわからなくなった ナウなヤングはHttpClient.GetStreamAsync 低水準言語からC#に戻ってくるとlinqが有能すぎて困る困らない ienumなんとかいうヤツにforeachないのはなんでなの?魔女のバァさんの呪いか? List<T>.ForEach(Action<T> action) みたいなやつのことかな? はい副作用ドーン!はLINQとしてどうなのってことで入らなかった console では処理を止めても良いから、同期処理でも良い でも、GUI では処理を止めると、アプリが動かなくなるから、 50ms 以上掛かるものは、非同期処理が推奨 Int32へのIntPtrを渡さなければいけないのですが、unsafeコードしか方法はないのでしょうか? 現状、 Int32 int32; IntPtr intPtr; unsafe { intPtr = new IntPtr(&int32) } someObject.someMethod(intPtr); みたいな感じです。 System.Runtime.InteropServices.ComTypesで用意されてるインターフェース使うと、 IntPtrで宣言されてるんですよね・・ まぁ、自前でrefで宣言しなおしてもいいんですけど。 うーん。どうしよう。 まぁ、out,ref使わずにIntPtrで宣言すると、null渡せるっての1つの利点ですかね・・ COMインターフェースでオプショナルな引数もあって、そん時はnull渡してくれみたいのもあるんで。 >>213 みたくunsafeしなければいけなならデメリットの方が大きそうですけど。 Marshal.AllocCoTaskMemするとか new int[1]してGCHandle.AllocでPinnedしてAddrOfPinnedObjectするとか 直接アンマネージにポインタだけ渡すってどうなんだろ Marshal.AllocHGlobalとかしなくていいのか? いまだにどこまで.Pinnedしなきゃならないのかわからないw 趣味グラマだからわからないままでも問題はないんだけども C#始めたころはいちいち書いていたが最近はずっと省いているな 変数がスタックにあるなら要らん それ以外は必須 GCHandle.Allocは解放漏れでメモリリーク起こす可能性があるしパフォーマンスも悪いからなるべくfixed使った方がいい >>220 サンクス だけどアンマネージ側に渡すのにいちいちunsafeにはしたくないな IntPtrってvoid*相当で型安全もクソもないし AllocHGlobalもmallocを生で使うのと変わらん unsafeよりよっぽどunsafe C#のスクリプト実行がVSなしでも動かせて、Pythonとかの代わりに使える未来はないかな? >>224 >C#のスクリプト実行がVSなしでも動かせて これはもうできるやろ 今のままだとpythonの代わりにはならんわ pythonは標準のモジュールにスクリプト用やOS周りの便利な機能が組み込まれてる pyhtonだと他のコマンドの出力をワンライナーで処理とかあるけど C#はまあ無理だな そういう所ですみわけされてる 適材適所 python だと標準でできて .net だとできないことって何かあるかな? getoptやargparseのようなものは欲しいと思ったな。その点ではMFCよりも退化してる。 ウェブサイトのリプレイスでPHPじゃなくてC#で書きたいので 上司を説得するために、PHPよりC#の方が言語的に優れてる点をまとめた 静的型付け 勝手に文字列、数値、真偽値等のプリミティブ型を変換しない ジェネリクス LINQ 名前空間名を指定してusing 非同期メソッド ラムダ式 拡張メソッド null条件演算子 逆にPHPの方が言語的に優れてる所ってなんだろう・・・ trait? 引数にタイプヒント付けるとnull安全になる所? 言語だけじゃなく、開発環境、ライブラリなど総合的に決めるべきやね。 結果は自明だが。 >>232 WebならC#は言語云々というよりプラットフォームの制約で選ばれるものだと思うぞ サーバーがWindowsならC#はMSが強く推奨する第一の選択肢であり、よほどの理由がなければ他を使うべきではない Linuxなら今では.NET CoreもあるけどPHP使ってるようなところの手に負えるもんじゃない PHP製サイトはフレームワーク使ってるけど 考えなしに機能拡張し過ぎたため 自分が入社した頃には既にコントローラーが大変なことになってて このままじゃヤバイから書き直す事になった >>234 なんか難しいのか 今時はDockerですぐ動く環境ができる感じじゃないの? .NET CoreはDockerで作ったことは無いけど PHPでテスト用の環境は作った事がある バックエンドだけC#で書いて Angular等をフロントエンドに使う事を推す人も居るけど RazorViewより良いの? AngularやReact、Vueは別にクライアント側でしか使えない訳じゃなくて node.jsでサーバーサイドでも使えるらしい Linuxでちゃんとした言語使いたいならJavaでいいだろ 言語機能が不満ならKotlin使えば>>232 は全部満たしてるぞ リプレースでやるにはDocker&.NET Core&C#全部新規導入なんてリスクが大きすぎるし、 成長という観点を込みにしてもそれだけのコストをかけるほど価値のある選択とは思えん DockerってことはAWSかなんかだろ? どうしてもC#に拘るんなら素直にWin鯖立てとけ SPAはサーバー負荷を抑えられるのが良いね。 せっかくのSPAフレームワークをわざわざSSRするのはメリットがよくわからん。 >>237 なぜDockerからAWSになるんやwww 言語に関してはKotlinに変えるのもC#に変えるのも同様にリスキーな気はする .NET Core 1.0が出てから1年半しか立ってないからエコシステムの充実度的には劣るかもしれないけど 何も無い訳じゃないよね Windows固有の物使ってなければ今までの物も移植可能な訳だし >>238 SEO的にはサーバーサイドレンダリングもした方が良いと聞く フロントエンドもバックグラウンドもtypescriptが一番まともな仕上がりになる 従事者数が全然違う フレームワークの開発者のレベルも違う asp.net coreが10年もつとは思えん MSがあっさり捨てて5年後はなくなってるかもしれない asp.net coreがこれからだと思うのはセンスない 今も死んでるのになんで選ぶ? そらマルチプラットフォームに対応せにゃ生き残れんからやろ あれ?Windowsじゃなきゃあんま美味しくねぇな? 詰んだな >>241 いまどき10年も同じテクノロジーを使えると思う方がおかしい 本当に素晴らしいテクノロジーは登場とともに コアなサポーターがつく 残念ながらasp.net coreは誰の噂にも上らない そもそも知られてない 多分web開発者が100人いるとしても知ってるのは3人ぐらいだろう web開発者の間ではASPというワードは別の意味でしかとらえられない ASP.NET Advent Calendarが2016年まであったけど2017年は消滅した >>246 どこのまともな大手企業がasp.net使ってるって? asp.net coreがこれからだとか web開発者の間で知名度が高いなんて思ってるほうがいかれてるわ 謙虚になって状況見ろよ 言語なんて主要なDBとORMに対応しててCRUDが書ければ 好きなの使えば良い 公式の.NET CoreのデバッガーはVisual Studio Code/Visual Studio/Xamarin Studioでしか動かせない 規約で禁止されてる https://github.com/dotnet/core/issues/505 JetBrainsのRiderは独自の実装を書いて動かしている .NET Coreはなんか中途半端なオープンソース化だな VSやXamarin Studio、Rider以外でデバッグするにはMonoしか無いって事なのか でもMonoだとライブラリの対応がどうなのか EF Coreで[ConcurrencyCheck]属性を使って同時実行制御をしたいのですが IQueryableをToList()で複数取得しようとするとTrackingされなくて困っています SingleOrDefault()ならTrackingされて正しく動作します やりたい事はデータをListで複数件取得して、それらの値を変更してUpdateRangeでまとめて更新したいです どなたか解決策を教えてください >>253 軽く試した範囲ではコンテキスト内ならListでもトラッキングされてるし コンテキストまたいでもUpdateRangeで変更としてマークされて更新されたけど 勘違いじゃなければミニマムコードどっかに上げて ASP.NET以外にWebフレームワークってある? Nancyぐらいしか見当たらない 他言語だと色々選択肢があるのに NancyがASP.NET MVCより良い点は この辺に書いてあった http://blog.jonathanchannon.com/2012/12/19/why-use-nancyfx/ https://codeopinion.com/why-use-nancy/ ・ルーティングが少ないコード量で書ける ・設定を出来るだけ少なくしている ・サーバーのレスポンスをテスト出来る ・TinyIOCで自動で依存関係を解決(他のIOCコンテナも一応使える) ・パイプラインフック(リクエストの前後で処理を実行) ・Content Negotiationで、ルートでResponse以外を返した時にResponseに変換 ・何処でもカスタマイズ・拡張可能 ORMとかは付いてないから自分で好きなのを選んで使うスタイル >>254 確かめて頂きありがとうございます あれから試行錯誤して、OrderBy()の前にTake()を使うとTrackingされないことが判明しました 何故このような動作になるのか、どなたかご教授ください >>260 そんな動作にはならないから お前の勘違いかお前が何か変な事してると思われ とりあえずコード晒せや 1月の月例アップデートのKB4055532がおそろしくバグってるらしい .net frameworkで文字化けしたり意味不明なエラーが連発したり突然アプリが落ちたりするそうだ 急にアプリの挙動がおかしくなったらまずそこに注意 今C#でゲーム作る時unity以外で作れるフレームワークある? UnrealEngine4が使える。 俺はエアプだけど。 3年前にXNAやってたけどもう意味ないよな?開発終了してるし、基礎勉強なら使えるかもしれないけど >>266 MonoGameがXNAのオープンソース化移植だからコードほぼそのまま動くで C#で書かれたライブラリをネイティブコードにコンパイルして他の言語から使うって出来るんですかね? ターゲットとなるアーキテクチャはIA32/AMD64系に限らずARM系なども含みます MonoはLLVMを使っているらしいので出来そうな気もしますがそのような記事を見つけられず・・・ 他の言語で使いたいライブラリはttps://github.com/vvvv/SVGです(SVGをレンダリングしたい) C#を動かすにはプロセス内でホストするなり別プロセスなりで必ずCLRを起動しなければならないので、 アンマネージコードから普通に呼べてクリーンで自己実行なライブラリを作るのはどうやっても無理 >>269 ありゃ、そうなんですか。.NET NativeやLLILC、SharpLangなどネイティブコードへコンパイルする処理系の があったらしいのでネイティブコード化できるのかなと思ったのですがそう上手い話はないのですね >>270 これはMono上で動いているライブラリを他の言語から使うラッパーでしょうか? Monoが動く環境でないとダメか・・・ ググったら普通にC++のSVGライブラリヒットするんだが・・・ >>271 ああそうか、「他の言語から使う」条件しか満たしてないね。 ネイティブコードにコンパイルしたいって書いてあったね。 しゅまん、これはmonoの上で動くやつ。 後出しだけど情報を小出しにするのも問題が大きいだろうから現状を。長文失礼 テキストなどの平易なベクターデータ(線、箱、円、文字など)をラスターデータに変換する ラスタライザーが欲しい。ラスタライズ動作をカスタマイズできるとなお良い ラスタライズ動作をカスタマイズしたい理由は最終的に欲しいラスターデータが2値モノクロなので アンチエイリアスの有無や線幅等を調整できる必要があるため 動作させるプラットフォームはWindowsやLinux等を考えているけどOS無しでの動作もあり得るかも 呼び出す側の処理系はCかインタプリタなどからC経由で呼ぶ予定 最初はHTMLのレンダリングエンジンを検討したけどChromiumにしろFirefoxにしろカスタマイズして 実装する的な例を見つけられなかったのと無題に大規模になることもあって断念 次点としてSVG単体での利用を検討しはじめてイマココ。ググってみるとSVGのレンダラーとして 見つかったのはlibrsvgと>>268 くらい。前者はGPL/LGPL故に一緒に使用可能なライブラリが制限されるし 後者はC#なのでネイティブで使えない? う〜む。MonoってOS無しで動作させたり出来るのだろうか・・・ >>272 C++なSVGレンダラーってあったっけ・・・参考までにどれでしょうか? >>274 OS無しも考慮するとなると、C#板ではキツイのでは? CまたはC++板での相談を推奨かな。 >>274 librsvg はlgpl2としても使えるように見えるけど、何か問題あるん? > テキストなどの平易なベクターデータ(線、箱、円、文字など)をラスターデータに変換するラスタライザーが欲しい。 WindowsならネイティブAPIのDirect2Dそのまんまなように思えるが (最近だと部分的にSVGのサポートも入り始めた) OS無しもとか言ってる奴に > WindowsならネイティブAPIのDirect2Dそのまんまなように思えるが とか人の話を聞く気がないのか壊滅的に理解力がないのかどっちなんだろ... そこまでのマルチプラットフォームを求めるなら、 俺ならAWS LambdaとかでWeb API 作ることを検討するわ >>279 > WindowsやLinux等を考えているけどOS無しでの動作もあり得るかも そもそもそのへんハッキリしねえから選択肢の一つとして紹介しただけだしなあ SVGの直接的なサポートは別としてレンダリングの細かい要求は満たしてるしね >>281 > Linux等を考えているけど って書いてあるのに、バカの上塗り? w >>282 こういう人に絡むだけで何も建設的なことを言わない(言えない)馬鹿、 生きてて楽しいのかね > こういう人に絡むだけで何も建設的なことを言わない(言えない)馬鹿 自己紹介乙 OSを動かせるハードウェアを用意して>>270 で行くかラスタライザーを新規作成するかのどちらかになるのかな >>277 LGPLの波及範囲は諸説あってはっきりしないのでライセンスがらみのトラブルを回避する上でも避けたいです ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる