16/11/25 17:23:50.79 vVyJsUPAr.net
Selectに副作用書くな
671:デフォルトの名無しさん (ワッチョイ c748-AQyI)
16/11/25 17:46:39.77 k5F1VYSo0.net
つか毎回乱数作ると検証しようがないよな
int[] randoms = new int[N];
for (int i = 0; i < N; i++)
randoms[i] = r.Next(RMAX);
というのがあったと仮定して以下を実行する
c = randoms.Where(ori.Contains).Count();
672:デフォルトの名無しさん (ブーイモ MMc7-/sNf)
16/11/25 17:51:48.96 yM8tzyplM.net
int count = Enumerable.Range(1, N)
.Select(_ => r.Next(RMAX) )
.Count(ori.Contains);
673:デフォルトの名無しさん (ワッチョイ 27ba-lM3r)
16/11/25 23:44:37.58 8749fss/0.net
検証は普通、同じシードの疑似乱数使うだろ。
674:デフォルトの名無しさん (オッペケ Sre7-4iO2)
16/11/26 05:41:07.62 BlR4fLnAr.net
そこで、Stateモナド登場。
675:デフォルトの名無しさん (ワッチョイ 37d9-1MTn)
16/11/26 15:45:30.50 q0gSFGbR0.net
>>661-663
ありがとうございます
Select()に副作用書くのはListだとForEach()があるのですが、配列だと使えないので
無理矢理感がありますが許してください(汗
676:デフォルトの名無しさん (オッペケ Sre7-4iO2)
16/11/26 15:59:56.88 BlR4fLnAr.net
>>666
許せぬ。
普通に>>663で良いんでないの?
677:デフォルトの名無しさん (ワッチョイ 1349-lVzu)
16/11/26 16:01:54.05 pkHe6RQg0.net
>>666
ゆるさん。
根本的にLINQの使い方が間違ってる。
678:デフォルトの名無しさん (ワッチョイ 37d9-1MTn)
16/11/26 16:46:10.56 q0gSFGbR0.net
>>667-668
駄目ですか
精進します
>>664
こうやってみました
DateTime dt = DateTime.Now; // 乱数のシード値に使う
Random r = new Random((int)dt.Ticks);
// 乱数測定1
Random r = new Random((int)dt.Ticks);
// 乱数測定2
以下続く
679:デフォルトの名無しさん (ワッチョイ 37d9-1MTn)
16/11/26 16:58:09.08 q0gSFGbR0.net
あ、違った
DateTime dt = DateTime.Now; // 乱数のシード値に使う
Random r = new Random((int)dt.Ticks);
// 乱数測定1
r = new Random((int)dt.Ticks);
// 乱数測定2
以下続く
680:デフォルトの名無しさん (ブーイモ MMaf-VGur)
16/11/26 17:05:31.40 /HuSQ2djM.net
public static class EnumerableEx {
public static IEnumerable<int> Randoms(int seed, int max, int count) {
var r = new Random(seed);
for(int i = 0; i < count; ++i)
yield return r.Next(max); }}
c = EnumerableEx.Randoms(seed, RMAX, N).Count(ori.Containts);
681:デフォルトの名無しさん (ワッチョイ abdc-MM3T)
16/11/26 17:27:30.27 UC4M2NKY0.net
>>671
引数のcountは無しで無限ストリームにした方が美しいと思う
有限にしたければTakeで切ればいい
682:デフォルトの名無しさん (オッペケ Sre7-4iO2)
16/11/26 20:57:24.75 BlR4fLnAr.net
>>670
続きは?
683:デフォルトの名無しさん (オッペケ Sre7-4iO2)
16/11/27 02:43:47.55 vLOqtuLor.net
public static IEnumrable<T> Randoms<T>(Func<T> next)
{
while(true) {
yield return next();
}
}
任意の乱数アルゴリズムを渡せるようにと考えたけど、もはやランダムとは無関係だよねww
684:デフォルトの名無しさん (ワッチョイ abdc-MM3T)
16/11/27 07:11:41.91 dEf188sX0.net
>>674
名前が既に機能を表してないのはともかく、これは副作用が前提になるからよくない設計
どこかで副作用を使ってない限りnext()は必ず毎回同じ値になるはず
685:デフォルトの名無しさん (ワッチョイ 370b-PVnu)
16/11/27 13:07:28.68 ZDMyX7Jh0.net
普通に何がしたいのか分からない
686:デフォルトの名無しさん (ワッチョイ 87ce-w12Y)
16/11/28 06:20:00.23 d2SeRThv0.net
687:乱数列をインデックスで参照したいだけ なんでしょ?
688:デフォルトの名無しさん (ワッチョイ 87d4-TEJY)
16/11/28 20:53:46.42 jgfNB/jg0.net
実際のプログラムでデリゲート/イベントをどう使うのが便利なのか、理解できる教材・WEBサイト等があれば教えてください
689:デフォルトの名無しさん (ワッチョイ c748-AQyI)
16/11/28 21:37:11.66 TQQs9y8p0.net
URLリンク(msdn.microsoft.com)
690:デフォルトの名無しさん (ワッチョイ 4f4c-/sNf)
16/11/29 10:18:57.84 PfRgidpN0.net
関数ポインタなイメージだわ
691:デフォルトの名無しさん (ワッチョイ 87ce-w12Y)
16/11/30 00:56:16.15 H3buRLlE0.net
Win32APIのコールバックに渡せる時点で外部からの見え方は関数ポインタそのもの
そこにどうやってインスタンもねじ込んでるのか正確には知らないけど
関数ポインタをユニークなヒープ領域に書いてそれを渡して呼び出させる
みたいな気持ち悪いことを裏でやってるんだろう
692:デフォルトの名無しさん (ワッチョイ 87ce-w12Y)
16/11/30 01:03:41.03 H3buRLlE0.net
少なくとも1度はヒープ上でコード実行してるはずなんだけど
スパイウェア認定されたりしないのはなぜだろう
693:デフォルトの名無しさん (ワッチョイ 279d-lM3r)
16/11/30 01:04:12.90 w8bfAEOD0.net
動けばいい
694:デフォルトの名無しさん (ワッチョイ a77b-rApL)
16/11/30 02:53:33.77 5s/CT6+70.net
>679
Msdnの説明なんて99%糞だよな。頭和杉、マクロバカって書いてある本を
見たことがある。
でもたまに凄くわかりやすいのがある。今日まさにそれに出会って
感想欄に
MSDNにしては本質をついていてわかりやすい。こんなにわかりやすい
せつめいは初めてだ。
これはMSDNの文章とは違う素晴らしい文章だ。たぶん外注のライターが
書いたものだと思うが、こういう外注さんは大事にしなさい。
ありえないとは思うが、もし万が一社員が書いたものならぜひともボーナス
を弾んであげてほしい。
と書いておいた。
695:デフォルトの名無しさん (ワッチョイ 5b3c-0AhV)
16/11/30 02:59:23.96 PzfaC3Zi0.net
精神を病んでいる様だからカウンセラーにでも相談したまえ
696:デフォルトの名無しさん (ワッチョイ abdc-MM3T)
16/11/30 07:35:52.74 TOIBVM0F0.net
>>681
マネージコードからの通常のInvokeや一般のクラスやインターフェースの仮想メソッド呼び出しでも
JITのために�
697:ッ様の仕組みがあるらしい デリゲートが関数ポインタを持ってるんじゃなくて、呼び出し元(call siteという)ごとのキャッシュとして ネイティブ関数を生成するみたいだ
698:デフォルトの名無しさん (ワッチョイ a77b-rApL)
16/11/30 10:16:51.02 5s/CT6+70.net
Delegateはクラスを着ていない素っ裸の抽象メソッドだと思う。だから
デレッってしてる。
クラスと同様にインスタンスを作成して使うけれども抽象メソッドだから
実態のメソッドを代入して使用する。
その時に実態のメッソッドから名前を剝ぎ取った素っ裸のメソッドが
ラムダ式だ。
スッポンポンというところがデレゲートとラムダは似ている。
699:デフォルトの名無しさん (ワッチョイ a77b-rApL)
16/11/30 10:35:50.72 5s/CT6+70.net
delegate int delSm(int i); //型紙delSmを作成する。
void test() {
delSm Sm; //型紙delSmから洋服Smを作成
Sm = (x => x * x); //素っ裸のメソッドにSmを着せる
int j = Sm(16); //j = 256
}
700:デフォルトの名無しさん (ワッチョイ 5c03-Z4eY)
16/12/01 16:54:34.62 0Um+ha3M0.net
C#の質問で無く恐縮ですが
VS2013でC#コード入力していますが
補完機能の振る舞いがよくわからないことがあります。
例えば"int"と入力する場合
i→n→tとキーインすると
補完候補は"int"の表示が選択されています。
ここでスペースをキーインすると
エディタには"iint"と入力されてしまいます。
どういうことでしょうか?
returnもrreturnとなってしまいます。
701:689 (ワッチョイ 5c03-Z4eY)
16/12/01 16:55:46.18 0Um+ha3M0.net
もしかしてATOKのせいでしょうか。
702:デフォルトの名無しさん (ワッチョイ 6bc0-/mAi)
16/12/01 19:32:35.80 Zf0m27Yo0.net
TABキーで補完すればいいんじゃね
703:デフォルトの名無しさん (ワッチョイ d1d6-NTgB)
16/12/01 23:26:48.62 iYDC/6Ae0.net
>>689
ATOK使ってるけど普通に使えてるな
VSのサービスパックでも当てたら直るんじゃね?
704:689 (ワッチョイ 5c03-Z4eY)
16/12/02 08:57:18.65 31Pwg6Qz0.net
>>691 >>692
ありがとうございます。
TABにしても同じなんです。
SPためしてみます。
と、書いていましたが
たった今VS2013起動して試してみたところ
問題有りませんでした。
原因はわかりませんが再起動すれば良いようですね。
お騒がせしました。ありがとうございました。
705:初心者 (ワッチョイ 50cf-yaSi)
16/12/02 14:04:42.72 mPN6uvNG0.net
C#の勉強したいんですけど
visualstudioのどれをダウンロードすればいいですか?一番左ですか?
706:デフォルトの名無しさん (アウアウオー Sabe-k+pW)
16/12/02 14:22:34.32 KR/8JQ+qa.net
オッスオラ極右
707:デフォルトの名無しさん (フォォーッ MM9b-NTgB)
16/12/02 14:24:44.13 hCuw5ExfM.net
>>694
URLリンク(download.microsoft.com)
708:デフォルトの名無しさん (ワッチョイ 98d4-NTgB)
16/12/02 14:44:59.65 ulrrSATP0.net
いままでPro買ってたけどCommunityでいい気がしてきた
709:デフォルトの名無しさん (オッペケ Sr8d-F2U0)
16/12/02 15:12:50.24 B5+8wL6Vr.net
コミュニティ使っててアプリ作って条件以上の売上出たらどうすればいいの?
710:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh)
16/12/02 15:32:17.74 mFAqdh2w0.net
買えばいいんじゃね、そんなんに売れたんなら
711:デフォルトの名無しさん (ワッチョイ 9220-NTgB)
16/12/02 22:45:54.98 5RQuVDtH0.net
C#というわけではなく、初歩的なことかと思いますが
テスト要領書って、本来コーディング前に作っておくものでしょうか?
うちの会社じゃ
いつもコーディングの後半に作ってるんですが
一般的には
712:どうなんだろうと思いまして
713:デフォルトの名無しさん (ワッチョイ 4dcb-g21N)
16/12/02 22:56:52.05 2vcaPjiT0.net
マルチポストしてんじゃねえぞチンカス野郎
714:デフォルトの名無しさん (ワッチョイ 115b-25R2)
16/12/02 23:15:26.91 9K0+rqji0.net
データベース使ったサンプルアプリ作ってみたいのですが、データベースは何を使ったらいいですか?
715:デフォルトの名無しさん (ワッチョイ f4cb-yaSi)
16/12/02 23:44:10.13 UcIXa3VL0.net
>>702
モノによって癖があるよ
インストール方法からして上手くいかないポイントが違う
業務でWindowsアプリ作るならSQLServerExpressがオススメ
絶対使うしね
趣味でレンタルサーバー使うならmysqlが多いかも
716:デフォルトの名無しさん (ワッチョイ d1d6-NTgB)
16/12/02 23:48:17.42 kbaBWwKx0.net
ファイルコピーだけで簡単に動かしたいのならSQLiteもいいぞ
717:デフォルトの名無しさん (ワッチョイ f4ce-BRVC)
16/12/02 23:58:41.69 P1j76Eyi0.net
Windows標準で入ってるJet DBが何も入れる必要ない点でオススメ
718:デフォルトの名無しさん (ワッチョイ 2aaf-MLbx)
16/12/03 00:46:33.44 6QJpBGmN0.net
SQLiteは便利で面白い
Firefoxのクッキーの管理なんかにも使われてる
719:デフォルトの名無しさん (ワッチョイ 115b-25R2)
16/12/03 09:19:05.56 /EDU3A450.net
>>703-706
ありがとうございます!
さっそく調べてみます!
720:デフォルトの名無しさん (ワッチョイ 92e5-/mAi)
16/12/03 10:35:13.28 OhSejOMk0.net
普段threadを生成してやっていた非同期処理を
バージョンアップに合わせてasync await使って実装してみようと思います。
非同期を意識しない場合の元ソースは以下のコード
private void btn_click(省略)
{
var list = getList("なんたら");
}
private List<string> getList(string target)
{
var list = hogehoge関数
return list ;
}
この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか?
可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。
有識者の皆様、何かしらヒントでもご教示いただけれb幸いです。
721:デフォルトの名無しさん (ワッチョイ 92e5-/mAi)
16/12/03 10:42:36.75 OhSejOMk0.net
連投失礼
記述ミス修正
getList関数には手を入れたくはないのですが、入れられないのであれば手を加えても問題ありません。
↓
この中で呼び出し元の btn_click から getList関数を非同期で呼び出すことは可能でしょうか?
可能であればいずれ同期的に使う可能性も含めて getList関数には手を入れたくはないのですが、入れなければいけないのであれば手を加えても問題ありません。
Task<List<string>>にしないといけないんだろうなぁ…とは思いますが…。
722:デフォルトの名無しさん (ワッチョイ 2a02-0Nhh)
16/12/03 10:56:58.35 rfPwjFy00.net
普通は同期版と非同期版と二つ定義するんじゃないのか
getListは同期関数にしたいの?非同期関数にしたいの?
723:デフォルトの名無しさん (ワッチョイ 39dc-Cf2b)
16/12/03 11:00:28.76 x7z2pgeG0.net
なんか勘違いしてそう
async使うなら最終的にIOやユーザー操作でブロックされるところまで全部非同期で繋がないと意味ないよ?
724:デフォルトの名無しさん (ワッチョイ 839d-5gNI)
16/12/03 11:03:34.95 n86jitUO0.net
var list = await Task.Run(() => getList("..."));
こういうことじゃないの?
725:デフォルトの名無しさん (ワッチョイ 39dc-yaSi)
16/12/03 13:23:04.99 x7z2pgeG0.net
ところで、asyncを全面的に使ってるとストリームにたかが数バイトを書き込むだけみたいな
時間的粒度の小さいメソッドでもいちいちawaitせざるを得ないことがよくあると思うんだけど、非効率だからまとめて処理できないもんかな
個人的には、全ての書き込みがバッファリングされることが保証されてるAsyncStreamみたいなクラスがあって
後でにまとめてawait FlushAsyncするという考え方の方がWriteAsyncより使いやすいと思うんだけど
726:デフォルトの名無しさん (ワッチョイ 92e5-/mAi)
16/12/03 13:33:41.53 OhSejOMk0.net
>>710-712
イメージ的には
getList←同期
getListAsync←非同期(内部でgetListを呼ぶ)
のようになるのかなと。
もとのgetList自体は同期処理で動くようにしておきたかっただけという簡単なものでした。
>>712さんの言うところで出来てしまいました…。
あっさり過ぎて…ありがとうございました。
これでUIが固まらない為だけの面倒な非同期を書かなくて済みそうです。
727:デフォルトの名無しさん (スッップ Sda8-wK09)
16/12/03 17:28:43.65 6dOdOU6od.net
商用で使えるフリーの開発環境ってありますか?
728:デフォルトの名無しさん (ワッチョイ 39dc-yaSi)
16/12/03 17:42:27.55 x7z2pgeG0.net
>>715
小規模な企業までならVS Communityが商用利用可
Communityが使えない規模ならVS Express
729:デフォルトの名無しさん (ワッチョイ 8d4a-JWTN)
16/12/03 21:57:51.27 NEbgZC1U0.net
>List<T>も2次元にはできないが、そもそも2次元にする必要がない
list<list<T>>で二次元じゃあないの?
730:デフォルトの名無しさん (ワッチョイ 839d-5gNI)
16/12/03 22:06:20.99 n86jitUO0.net
広義の二次元だけど狭義の二次元ではない、かな
多次元配列とジャグ配列で呼び分けるから
731:デフォルトの名無しさん (ワッチョイ 1ee1-yaSi)
16/12/03 22:51:22.62 1XG4MZmv0.net
>>713
その程度なら自分で実装すればよくね?
732:デフォルトの名無しさん (ワッチョイ 6b0d-BRVC)
16/12/03 23:02:24.03 nNmCZ+K50.net
TreeViewでファイルエクスプローラーを作りましたが
ファイルやフォルダの数が多すぎると必ずフリーズします
例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか?(私の環境ではサブフォルダ数が1万数千あります)
733:デフォルトの名無しさん (ワッチョイ f4ce-BRVC)
16/12/03 23:27:08.60 55Oi6B7P0.net
>>720
そもそも1万件とか画面に一度に表示できる数じゃないんだから
一部だけ出すとか表示方法を工夫する以外にないよ
既存のファイラーとかを参考にしてみたらどうかね
734:デフォルトの名無しさん (ワッチョイ f4cb-yaSi)
16/12/04 00:29:04.69 tP3D55j/0.net
>>720
開いたフォルダのみ中身を表示してはどうだろうか?
735:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5)
16/12/04 20:20:27.84 HFDVK7VF0.net
Rxをテストしようとおもうのだが、
using System.Reactive.Linq;
これを追加しても
エラー CS0234 型または名前空間の名前 'Reactive' が名前空間 'System' に存在しません (アセンブリ参照があることを確認してください)。
となる。参照を探してもmscore.libしかないがこれをチェックすると
「すでにビルドに組み込まれているのでエラー」になる。
どうしたらいいの?
736:デフォルトの名無しさん (アウアウカー Sa05-F2U0)
16/12/04 20:35:11.66 iX2mGjzba.net
Rxはインストールしたの?
標準ではないよ
737:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5)
16/12/05 06:04:42.72 kVcVuvgX0.net
VS Community 2015で
Nuget パッケージマネージャー画面でSystem.Reactiveをインストールしようと
する
設定は参照にして、パッケージソースは「すべて」
Nuget.org
packagesource
Microsoft and .NET
Microsoft Visual Studio Offline Package
にしている。
'.NETFramework,Version=v4.5.2' を対象とするプロジェクト 'WpfApp1' に関して、
パッケージ 'System.Reactive.3.1.1' の依存関係情報の収集を試行しています
Unable to load the service index for source URLリンク(packagesource.)<) このエラーが出るのはパッケージマネージャの設定に
間違いがあるんだろうか?
738:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5)
16/12/05 07:19:43.60 kVcVuvgX0.net
PM> Install-Package System.Reactive
Install-Package : ソース '' 内でパッケージ 'System.Reactive' が見つかりません。
つまりパスが違っている。DefaultPathはどこに設定するのだろうか?
739:デフォルトの名無しさん (ワッチョイ 5c7b-BMT5)
16/12/05 07:22:18.16 kVcVuvgX0.net
あれっ、頭にきてボタンを押しまくっていたらインストールできた。
なぜだ? わからんが、とにかくインストールできた。手当たり次第に
出たらめにやるのがいいみたいだ。
740:デフォルトの名無しさん (アウアウオー Sabe-wK09)
16/12/05 21:52:16.25 7n2NXvP5a.net
「n = n + 1」「n++」「n += 1」
の中で速度が速い、またはメモリの消費が少ない手段はどれですか?
今回の使用目的はループ内でのカウンタです
また、それぞれの使い分けがわからないので適切な使用箇所があれば教えてください
741:デフォルトの名無しさん (ワッチョイ 9213-ggLi)
16/12/05 21:55:01.48 +86vS9TV0.net
>>728
差はないから好きにすればいい
742:デフォルトの名無しさん (ワッチョイ 467d-NTgB)
16/12/05 22:28:32.97 k7XpTrID0.net
++はコピーが入る
743:デフォルトの名無しさん (ワッチョイ 4d7b-1jzX)
16/12/05 22:44:22.01 VOjnBi1e0.net
出たな、半可通
744:デフォルトの名無しさん (オッペケ Sr8d-E9Xg)
16/12/06 02:55:06.76 4zSpj2YCr.net
>>727
VSのnugetのインストーラが古いので更新する必要がある場合がある。
745:デフォルトの名無しさん (アウアウカー Sa67-OnqS)
16/12/09 10:45:19.60 0JyYFlmma.net
>>728
cpy add 1 mov
inc
add 1
746:デフォルトの名無しさん (JP 0H5f-l58V)
16/12/09 10:50:44.15 u4ONmpntH.net
それだけで文にするならどうせ最適化されるでしょ
部分式として使ってるならしらんけど
747:デフォルトの名無しさん (ワッチョイ 07ce-3ple)
16/12/10 21:08:20.94 9pHrXFRT0.net
カウンタならどうでもいいけど
インデックスとして使うならunsafe付けてポインタ扱った方がいい
748:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/10 21:20:26.17 THyFY8cN0.net
そんなのが必要になる場合は限られる。
初心者スレでunsafeを気軽に進めない方が良い。
749:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/10 21:36:24.82 MAlDTlrl0.net
fixedはpinのオーバーヘッドがあるから頻繁に使うとかえって遅くなるよ
750:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 06:33:33.19 caNoEqSZ0.net
>TreeViewでファイルエクスプローラーを作りましたが
>ファイルやフォルダの数が多すぎると必ずフリーズします
>例えば肥大化した"C:\Windows\WinSxS"を表示するにはどうしたらいいですか?
>(私の環>境ではサブフォルダ数が1万数千あります)
自分もこれで悩んでる。1分ごとに測定したデータが1ファイルごとに1年分ある。
60x20x360=43万ファイル
これをGetFilesでファイル名を取り出して集計処理しようとするとファイル読み出しで
ハングする。
やり方がよくわからないので先輩に聞いたら
「Application.EentDoを入れたらキーが効くのでハングしないよ」
というアドバイスをもらってやってみたが、ダメだった。
で自分で少し調べてみたんだが、
UIの同一スレッドでこれをやると原理的にだめ。処理が重すぎてかならずハングする。
スレッドを分ける方法として、タスクプールを使う方法とスレッド生成がある。
タスクプールを使うのがよい。Async/Await
というところまでは分かったんだが、どうやって実現したらいいのかまだよくわからん。
751:デフォルトの名無しさん (ワッチョイ 07d4-QGPA)
16/12/11 06:47:31.93 fUQnV1N+0.net
非スタティックなメソッドを呼び出したい場合に、
new クラス名.メソッド名();
とするのはなにか問題があるのでしょうか?
752:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 08:40:31.81 caNoEqSZ0.net
>739
それはコンパイルエラーになるから問題ないと思うが、、、
753:デフォルトの名無しさん (ワッチョイ ebdc-6LJV)
16/12/11 09:12:08.77 xUW3RgdE0.net
>>739
new クラス名().メソッド名();
の間違いと仮定した上での回答だが、
毎回必ずそのパターンで使用されるのであれば実質staticメソッドと変わらないからstaticメソッドにすることも検討すべき
パラメータが複雑な場合にBuilderパターンとFluentなスタイルを組み合わせて、
new Request().WithEncoding(UTF8).with…().Send();
みたいにするのは丁寧に作られてるライブラリだとよくあるけど
754:デフォルトの名無しさん (ワッチョイ 07cb-1E9w)
16/12/11 09:24:54.90 G916gL+V0.net
>>738
仕様が決まってない問題をAPIの問題にすり替えてる
超たくさんファイルがあるとき結局どうしたいの?
全部表示したいの?一部表示したいの?
ユーザに指定させて表示したいの?
755:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 09:42:50.42 caNoEqSZ0.net
仕様は明白だとおもうが、、、
TreeView表示と同じだが、ファイルを読みだしてグラフ表示しながら同時にファイル
読み出しとその集計処理もやる必要がある。
100ポイントづつを読みだして処理して表示する。
続きを100ポイント読みだして処理して表示する。
このようにシングルスレッドのなかで実現できれば、それが最も良い。
しかし、処理を分割するのはGetFilesのようなライブラリを
使う場合は中断して途中から再開は不可能だ。
そこで、GetFilesは別タスクで動かして非同期処理をするパイプを作ればいい。
task1 thread
data = getfiles();
FIFO.add(data);
UI thread
tree.add( FIFO.read());
というのが検討中の内容だ。
756:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/11 09:42:54.26 xUW3RgdE0.net
>>738の場合は小手先のコーディングでどうするという問題じゃなくて
SparkとかHiveとか使えばいいんじゃないか
757:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 09:51:31.24 caNoEqSZ0.net
それちょっと調べてみるが、C#にキューってのがあるが、それじゃだめなの?
758:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/11 09:54:31.80 xUW3RgdE0.net
>>745
抽象度が全然違う
ちゃんとしたビッグデータ処理基盤を使えば、
データを全部HDFSに放り込んでおきさえすれば簡単にデータセット全体にクエリがかけられる
いちいち要件に応じて作り込まなくていい
759:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 09:55:28.07 caNoEqSZ0.net
>744
そんな商用ツールは見掛け倒しと思って間違いない。第一広まらないy。
760:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/11 09:58:51.14 xUW3RgdE0.net
>>747
オープンソースだしデータ処理の世界じゃクソ有名だよ?
脊髄反射で拒否する前にちょっとは新しいことに興味持ってみてもいいんじゃないかな、
余計なお世話かもしれないけど
761:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 10:05:36.19 caNoEqSZ0.net
えっ、オープンソースなのか。俄然興味がわいてきた。w
762:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 10:07:25.47 caNoEqSZ0.net
普通のDBに比べてSpark、Hiveは何がいいの?
763:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 10:12:32.86 caNoEqSZ0.net
グラフ表示するような案件だとSpark SQLがいいみたいだね。 速い。
764:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/11 10:16:20.28 xUW3RgdE0.net
>>750
ざっくりいえば大量データのバッチ処理が速い
レイテンシが大きいのでリクエストをリアルタイムに処理して結果を返すようなものには向いていない
765:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 10:33:30.52 caNoEqSZ0.net
C#を最近勉強をはじめたばかりだが、これはすごい言語だな。まさにアルゴリズムの最高哲学
という印象を受けた。これは面白い。
しかし目移りしてどこから取り掛かったらいいのか困る。VBをチョロっとしか経験がないので
C#には新しい概念がありすぎてミクロ的にもマクロ的にはほんとに目移りする。
LINQ、WPF、RX、ざっとみたところだ。
いままだ右も左もわからないので取り合えず。適当にReactive Extention からマスターして
みようと思っているが、、、、
766:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu)
16/12/11 11:12:34.07 n3GfLzAe0.net
>>739
newより.の方から優先順位が高いので
その例ではクラス名.メソッド名 のスタティックメソッドを呼び出して、その戻り値をnewする事になる
なので、newをカッコでくくる
(new Date).toISOString();
767:デフォルトの名無しさん (ワッチョイ 0b7b-ymeu)
16/12/11 11:13:40.49 n3GfLzAe0.net
ああ、すまん、Javascriptスレと間違えてたわ
768:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/11 11:16:14.04 xUW3RgdE0.net
Rxはマイナーな技術だしasync/awaitがわかってれば十分カバーできるからスルーでOK
WPFも終わった技術だから今更要らない
専業コーダーじゃないんなら小手先の技術に拘るのはほどほどにして
マイクロサービス的な連携だとかクラウド活用だとかもっとマクロな領域へシフトしていった方がいいと思うよ
769:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 13:36:37.71 caNoEqSZ0.net
>756
言わんとするところはよくわかる。考え方の本質は同じだとおもう。
できれば楽にプログラムをしたい。
WPFは終わったのだろうか? たしかに流行ってないよね。w
でもMVVMの考え方は間違っていないと思う。
Rxはマイナーな技術なんだろうか? 応用できる範囲がどの程度あるのか
はよくわからない。
LINQには少なからず衝撃を受けたので、Push型のRXはなにかとてつもない発見
がありそうな予感がする。
もっともLINQというよりはIEnubableとかデザインパターンの考え方に衝撃を受けた。
マクロ的な技術を使う上でもミクロをある程度は理解していないと、無駄な使い方
をしてしまう可能性があるように思う。その意味では細部まで100%理解しよう
なんて思わないが、60%くらいは理解しておきたい。
770:デフォルトの名無しさん (ブーイモ MM07-caEn)
16/12/11 13:48:02.76 Z923MDQCM.net
ネタや実験以外でRxなんて使ってる現場存在するのか
771:デフォルトの名無しさん (ワッチョイ 5b79-pq3j)
16/12/11 14:07:20.29 bG1axWcs0.net
フロントならangularについてくるから使うけどC#では使ったことない
772:デフォルトの名無しさん (ワッチョイ 5b79-pq3j)
16/12/11 14:12:00.35 bG1axWcs0.net
angularでもRxはtoPromiseしか使わないから使ってないような物か
773:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/11 14:12:51.19 31wztqOV0.net
>>743
GetFiles()って、Directory.GetFiles()のこと?
それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。
774:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/11 14:29:28.43 31wztqOV0.net
>>739
恐らく、やりたいのは
(new クラス名).メソッド名();
ってことだと思うけど、何度も使う場合は毎回newすることになるので非効率。
また、IDisposeなクラスの場合はDispose()を呼べない。
上記2つに問題ないなら使っても構わない。staticメソッドにすべきだけどね。
775:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 14:49:28.21 caNoEqSZ0.net
>それだったら、代わりにDirectory.EnumerateFiles()を使えば逐次処理出来るよ。
それなかったな。 会社がVs2008なのでw
Vs2008で.net Framework4.5とかつかえるんだろうか?
776:デフォルトの名無しさん (ブーイモ MM07-caEn)
16/12/11 14:58:46.78 Z923MDQCM.net
なきゃ実装すればいい
777:デフォルトの名無しさん (ワッチョイ cb5b-w4ID)
16/12/11 14:59:38.20 PxfwJXGz0.net
こんな感じで構造体配列の中身をIntPtrにコピーしたいんですが
どういう方法がありますか?
struct A{ int x=0,y=1,z=2; }
A a = new A();
IntPtr ptr;
Marshal.StructureToPtr(a, ptr, false);
778:765 (ワッチョイ cb5b-w4ID)
16/12/11 15:00:53.89 PxfwJXGz0.net
>>765 すいません。領域確保(AllocCoTaskMem)のところは省略してます。
779:デフォルトの名無しさん (オッペケ Sr27-w4ID)
16/12/11 15:40:06.69 pNKp5sE/r.net
List<string> list = new List<string>() {"hage", "namahage"};
List<string> list = new List<string> {"hage", "namahage"};
どっちもいけるんだけどどう違うの?
780:デフォルトの名無しさん (ワッチョイ 07cb-1E9w)
16/12/11 15:41:48.31 G916gL+V0.net
>>743
でも現実には処理が間に合わないわけじゃん
それでも一気に表示する仕様は変えないのか?
エクスプローラーではできてるのか?とか
Windowsのコピーって動作だって早く終われば進捗ウィンドウなんて出さないけど
長くかかれば進捗ウィンドウが出てくるわけよ
781:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/11 15:48:11.13 31wztqOV0.net
>>763
肝心な条件を後だしとか酷いな。
Directory.EnumerateFiles()は.Net 4からだけど、VS2008は.Net3.5までだな。
.Net3.5じゃ、Async/AwaitどころかTaskも使えないぞ。
>>739で用語が混じってるけど、スレッド/スレッドプール/タスクね。
782:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/11 15:55:26.64 31wztqOV0.net
Directory.GetFiles()は全てのファイルを取得するまで処理が戻ってこないから、バックグラウンド処理にした所で結局待たされる。
逐次処理がしたいなら、Win32API使ってDirectory.EnumerateFiles()のようなものを独自実装するしかないな。
783:765 (ワッチョイ cb5b-w4ID)
16/12/11 17:07:16.26 PxfwJXGz0.net
こんな風に構造体の配列の要素ひとつずつをIntPtrで確保した領域にコピーしようと
したのですが、こういう方向性では無理ですか?
IntPtr ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(A))*a.Length);
for(int i = 0; i < a.Length; ++i){
Marshal.StructureToPtr(a[i], ptr+i*size, false);
}
784:765 (ワッチョイ cb5b-w4ID)
16/12/11 17:20:36.88 PxfwJXGz0.net
>>771 あーこれで問題なくいけてましたwお騒がせしました。
785:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 17:56:21.30 caNoEqSZ0.net
>770
そういうことか。 それでDoEventが聞かなかったんだね。
>769
Net4をダウンロードして、参照すればいいだけかとおもっていたが
むりか?
786:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 18:00:11.20 caNoEqSZ0.net
>770
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"C:\test");
System.IO.FileInfo[] files =
di.GetFiles("*.txt", System.IO.SearchOption.AllDirectories);
//ListBox1に結果を表示する
foreach (System.IO.FileInfo f in files)
{
ListBox1.Items.Add(f.FullName); ここでキューにいれればいいやん。
}
787:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 18:06:46.94 caNoEqSZ0.net
>でも現実には処理が間に合わないわけじゃん
>それでも一気に表示する仕様は変えないのか?
キューから取り出して表示するんなら、UIがわで順次表示できるよ。
問題はUIで超重たい処理がはいるのでハング状態になるということだけ
でしょ。
UIが動けば、ブレーク中断したり任意にできる。
788:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/11 20:18:29.55 caNoEqSZ0.net
SparkはC#サポートしてないよ。C#からどうやってつかうの?
789:デフォルトの名無しさん (ワッチョイ ebdc-6LJV)
16/12/11 22:29:10.18 xUW3RgdE0.net
そんなもん別プロセスでやりゃいいでしょ
パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件ならファイルベースでもオーバーヘッドは全く無視できる
790:デフォルトの名無しさん (ワッチョイ 07cb-1E9w)
16/12/11 22:30:49.68 G916gL+V0.net
一個一個入れて描画されてるから遅かったりして?
791:デフォルトの名無しさん (ワッチョイ d723-xm+r)
16/12/12 01:48:31.95 jfe+O/Es0.net
>>771
.NET 4.0以降ならこういうのもあるよ、Marshal.AlignedSizeOf<T>()でアライメントされるが
URLリンク(msdn.microsoft.com)
派生クラスでhandleに確保済みポインタを設定し、Initialize<T>()等でポインタ領域も指定
StructureToPtrはジェネリックメソッドでさえも非ジェネリックのラッパーっぽいので
パフォーマンスは期待できない、unsafeで良ければ構造体ポインタ使った方が良いかもね
792:デフォルトの名無しさん (ワッチョイ cb5b-w4ID)
16/12/12 02:20:55.85 JnfesTFd0.net
>>779
おぉ~情報ありがとうございます!
なるほどそういうのもあるんですね。
教えて頂いた事を参考にさせて頂いてどうやるかもうちょっと考えてみます。
793:デフォルトの名無しさん (ワッチョイ ebdc-6LJV)
16/12/12 06:39:25.29 w8oqDcFY0.net
bittableな構造体ならマネージ配列にGCHandleを割り当ててAddrOfPinnedObjectという手もあるよ
unsafeならfixedステートメントがだいたい等価
いちいちアンマネージなバッファを割り当てたり更新内容をマネージコードに書き戻したりしなくていいから楽
794:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/12 08:05:25.67 Jwz8x4f60.net
>そんなもん別プロセスでやりゃいいでしょ
>パラメータや結果の受け渡しはRPC(IPC)使ってもいいけど、今回の要件なら
>ファイルベースでもオーバーヘッドは全く無視できる
全然意味がわからない。C#でCSVを作ったとして
1.C#からScalarにクエリを送信して、
2.Sparkの処理終了を待つ
3.結果を受信する。
これをC#でプログラムして、Scalarでもプログラムするってこと?
言うのは簡単だが、、、、例でもなきゃ調べてプログラムするのに1週間はかかりそう。w
本質的な情報が欠落しているとおもうよ。こんなのは初心者には全然意味がわからない。
795:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/12 08:06:12.67 Jwz8x4f60.net
>777
こういうのを使えってことだろうか?
Mobius: C# API for Spark
796:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/12 08:10:10.92 Jwz8x4f60.net
var lines = sparkContext.TextFile(@"hdfs://path/to/input.txt");
var words = lines.FlatMap(s => s.Split(' '));
var wordCounts = words.Map(w => new KeyValuePair<string, int>(w.Trim(), 1))
.ReduceByKey((x, y) => x + y);
var wordCountCollection = wordCounts.Collect();
wordCounts.SaveAsTextFile(@"hdfs://path/to/wordcount.txt");
こんな感じでC#からSparkをコントロールしたいのだが、もっとも一般的で初心者向け
な簡単な方法はなにでしょうか?
797:デフォルトの名無しさん (ブーイモ MM2f-6LJV)
16/12/12 08:30:36.13 FdLiOBdBM.net
>>784
それを普通にScalaかPythonかJavaで書いてC#からProcess.Startで呼べばいい
なんでもC#でやる必要ない
798:デフォルトの名無しさん (オッペケ Sr27-l58V)
16/12/12 11:23:30.02 FEnMQE8Ar.net
誰も>>767に答えられないの?
799:デフォルトの名無しさん (ブーイモ MM2f-6LJV)
16/12/12 11:31:59.68 FdLiOBdBM.net
>>786
違いはない
800:デフォルトの名無しさん (アウアウオー Sa3f-ff1P)
16/12/12 11:55:48.82 DdSBjDaJa.net
どうでもいいけどここにちゃんとした説明があるな
URLリンク(msdn.microsoft.com)
801:デフォルトの名無しさん (ワッチョイ 277b-gb6D)
16/12/12 14:45:07.46 Jwz8x4f60.net
>785
なるほど。
傾向を掴むだけの場合にはいいけれども、アプトプットの表現を加工したいような
場合にはやはりC#でないと、、、となって結局はC#が必要になるような気がする。
JavaもC#も言語的にはそんなに変わらないが、インテリセンスのないようなIDE
では作業できないと思わないか?
Scalaとか触ってはみたがインテリセンスがないのでこれでは使えない。
インテリセンスがあればうろ覚え程度でもなんとかなる。
802:デフォルトの名無しさん (ワッチョイ b741-mm6H)
16/12/12 15:32:39.38 9sS+uj7w0.net
未指定だと
Javaはpublicに
C#はprivateになるのは
かなりデカイ違い
803:デフォルトの名無しさん (ワッチョイ 5b79-pq3j)
16/12/12 15:56:55.39 snQzvIqt0.net
>>790
javaはppだぞ
804:デフォルトの名無しさん (ワントンキン MMef-g0tO)
16/12/12 16:46:36.53 cpVlzpwxM.net
peek to peek ?
805:デフォルトの名無しさん (ワッチョイ 5b79-pq3j)
16/12/12 17:00:27.95 snQzvIqt0.net
package private
806:デフォルトの名無しさん (ブーイモ MM47-caEn)
16/12/12 18:52:15.45 VeOEVzI1M.net
えっJavaってIDEにインテリセンスもないのか
807:デフォルトの名無しさん (ワッチョイ 5b79-pq3j)
16/12/12 19:44:00.02 snQzvIqt0.net
>>794
Ctrl+spaceで出すか、設定からいつでも出るようにしないといけない
808:デフォルトの名無しさん (ワッチョイ 5f73-drn7)
16/12/12 23:05:44.03 dBjxs9jc0.net
Datatablのフィールドに氏名があったとして
Linqで荒川のindex(rowの位置)を取得するにはどう書けばいいのですか?
809:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/12 23:11:46.39 w8oqDcFY0.net
>>796
そんなことはしない
データソースに直接クエリするべき
810:デフォルトの名無しさん (ワッチョイ 5f73-drn7)
16/12/12 23:30:47.31 dBjxs9jc0.net
>>797
indexをforで探して別のフィールドの国語、数学の点を変えるでやっているんだけど
forじゃなくてLinqで探せないかなと思って、forよりLinqのが早い?かなと
811:デフォルトの名無しさん (ワッチョイ 6b23-WrC4)
16/12/12 23:34:13.53 /DQxiOau0.net
>>798
行数が少ないだけでスピードは大して変わらんよ
812:デフォルトの名無しさん (ワッチョイ b790-d424)
16/12/13 23:38:21.93 3IrbMGrr0.net
カレンダーを作りたいのですがフォームに表示する場合どのコントロールアイテムを使えばいいのかわかりません
使えそうなコントロールアイテムってありますか?
813:デフォルトの名無しさん (ブーイモ MM07-6LJV)
16/12/13 23:45:34.29 D1DGYHRwM.net
WebBrowserでGoogleカレンダー表示しとけ
814:デフォルトの名無しさん (ワッチョイ b790-d424)
16/12/13 23:45:54.00 3IrbMGrr0.net
すいません、質問内容を変えます
MonthCalenderアイテムのたとえば第1・3火曜日だけを色を変えたりとかってどうやるんでしょうか?
815:デフォルトの名無しさん (ワッチョイ ebdc-Ts63)
16/12/14 01:12:4
816:7.69 ID:dZsAFSxQ0.net
817:デフォルトの名無しさん (ワッチョイ d349-mlnL)
16/12/14 01:25:03.42 ymoBJubC0.net
何だろね、この強引なWEB推し。
初心者がいきなりASP.NET MVCとか無理だろ。
818:デフォルトの名無しさん (ワッチョイ 3f19-i2Au)
16/12/14 01:50:56.59 WNb69LWH0.net
webアプリってあんまり好きじゃない
819:デフォルトの名無しさん (スププ Sd2f-8RvK)
16/12/14 02:05:02.38 0k2o8obnd.net
デスクトップアプリ作りたい人にWebアプリ薦めるとか頭おかしいだろ
820:デフォルトの名無しさん (ワッチョイ 07cb-1E9w)
16/12/14 22:24:55.46 AUUgXdZT0.net
あー、どうだろ?
今時、DBにも繋がらないゴミになんか価値あるの?
って思う
メモ帳ですらgoogleでクラウド化してくれたことでやばいぐらい利便性が上がってる
821:デフォルトの名無しさん (スププ Sd2f-8RvK)
16/12/14 22:39:26.79 0k2o8obnd.net
>>807
デスクトップアプリがDBに繋がらないって意味分からん
822:デフォルトの名無しさん (ワッチョイ 3faf-i2Au)
16/12/14 22:46:30.91 iFO9XKWI0.net
デスクトップアプリでDBならSQLiteとかでもOnedriveみたいにファイルを置くだけで同期できるやつを使えば鯖なくても簡単にクラウド化できるし
ローカルのファイル書き込みと同じように使えるから初心者でも楽でいいよ
823:デフォルトの名無しさん (ワッチョイ 6b23-WrC4)
16/12/14 23:01:05.01 4HnH0eA/0.net
>>809
SQLiteは、同時書き込みサポートしていないから、当該アプリケーション専用かつ、二重起動不可にしないと何かと問題起こるでしょ
824:デフォルトの名無しさん (スププ Sd2f-8RvK)
16/12/14 23:06:38.72 0k2o8obnd.net
>>810
用途に合わせてDB選択すればいいじゃないですか
825:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw)
16/12/15 00:01:01.86 I51Ec/8p0.net
>>808
クラウド的な意味で
なんでもネットに繋げて見るべきだと思うな俺は
826:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/15 00:37:49.10 R3vgAk4Qd.net
>>812
?
827:デフォルトの名無しさん (ブーイモ MMb8-JvIx)
16/12/15 00:50:31.08 ArFpv1XpM.net
いまやC#も舞台は完全にWebに移ったからなあ
.NET Coreも正式リリースされ、C#はクラウド開発の主要技術として本格的に覇権を取りにいく時代に入った
デスクトップアプリなどという終わった技術に固執している場合ではないよ
828:デフォルトの名無しさん (ワッチョイ 9c9d-0G5/)
16/12/15 01:56:47.57 UyqFS3sy0.net
※個人の感想です
829:デフォルトの名無しさん (ワッチョイ 350c-8I6M)
16/12/15 01:58:26.76 roF9qDxe0.net
>>814
仕事でデスクトップアプリ作ることないの?
いままでデスクトップアプリだったけど、Webに移行できたアプリって例えばどういうのがあるの?
830:デフォルトの名無しさん (ワッチョイ 413c-awGI)
16/12/15 03:06:24.93 hXmFu1Hy0.net
>>816
業務アプリはWeb移行流行っただろ
デスクトップアプリは、開発ツールとしてならちょくちょくつくるね
831:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/15 04:10:25.23 R3vgAk4Qd.net
.NET Coreって別にクラウド用じゃないんだけど
832:デフォルトの名無しさん (ワントンキン MM40-Qnvt)
16/12/15 06:03:28.59 4tPXC7shM.net
PAINT DOT NET がWebに移植されたの?
833:デフォルトの名無しさん (JP 0H57-8I6M)
16/12/15 10:17:25.60 AviUmHkiH.net
デスクトップアプリでもクラウド上のDBに接続できるし>>807は意味わからんな
MS的にAzure App ServiceとXamarinと.NET Core推しでUWP含めデスクトップアプリを捨てにかかってる感はある
834:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/15 10:33:10.37 QVvM9ANid.net
>>820
xamarinはUWPサポートしてるんですが
835:デフォルトの名無しさん (ワッチョイ 8001-Vn9u)
16/12/15 10:42:37.80 FQrvRs280.net
会社で使う業務アプリなら、使い勝手がどうとかレスポンスがどうとか文句言っても
しょうがないからWebアプリでも仕方なしに使うけど、個人で使うならよっぽど何か
メリットがない限り、Webアプリを選ぶ事はないわな
836:デフォルトの名無しさん (ドコグロ MM1c-Wqrw)
16/12/15 11:52:17.88 JOHJeedcM.net
>>822
え?
むしろスマホも枠に入れたらwebアプリのが多くならない?
837:デフォルトの名無しさん (ドコグロ MM74-f0Z7)
16/12/15 12:11:23.13 oGetrQbmM.net
スマホアプリ全部をWebアプリに含めるなよ
838:デフォルトの名無しさん (ワッチョイ 8001-NX/j)
16/12/15 12:12:53.08 FQrvRs280.net
スマホの話をしてるつもりはないんだけどなw
839:デフォルトの名無しさん (ワンミングク MM40-BQpQ)
16/12/15 12:33:06.76 7KRIzockM.net
URLリンク(chrome.google.com)
840:デフォルトの名無しさん (ワッチョイ f2af-fzYk)
16/12/15 15:47:36.94 cs8YXCvF0.net
スマホアプリもデスクトップと同じようなものだと思ってたけど違うの?
ソシャゲー以外はゲームもそれ以外もネット無しでも動くのが多いけど
841:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/15 16:19:58.27 QVvM9ANid.net
>>827
同じに決まってますやん
っていうかもしかして
デスクトップアプリ=通信機能なしのアプリ
Webアプリ=通信機能ありのアプリ
と思ってる人いる?
842:デフォルトの名無しさん (ワッチョイ 3976-ayWP)
16/12/15 20:22:44.73 JHzpWXH70.net
ローカルファイルの存在がある限りはデスクトップアプリなくならんよなあ
electronとかでテクノロジー的には統一されるのかもしれんが
843:デフォルトの名無しさん (ワッチョイ 39d9-0Nmv)
16/12/15 20:50:15.58 0F4R16IB0.net
アーキテクチャーの話になってきてるからスレタイ読んで方向修正しろ
844:デフォルトの名無しさん (ワッチョイ 34cb-Wqrw)
16/12/15 22:01:11.28 I51Ec/8p0.net
c#でスマフォアプリ作りたいよ!
845:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/15 22:07:11.09 QVvM9ANid.net
>>831
どうぞどうぞ
846:デフォルトの名無しさん (ワッチョイ 3542-XOD+)
16/12/15 22:41:41.93 Uw+BYsZj0.net
>>831
つunity
847:デフォルトの名無しさん (オッペケ Sr29-I6+1)
16/12/15 23:42:14.65 FEXhH1Xvr.net
>>833
なんでそこでUnity出てくるんだよ
アプリ=2D/3Dゲームとは限らんだろ
848:デフォルトの名無しさん (アウアウイー Sa87-WqSn)
16/12/15 23:52:53.04 JZ4+gGwKa.net
>>834
つunity
849:デフォルトの名無しさん (ワッチョイ 3542-XOD+)
16/12/15 23:53:04.54 Uw+BYsZj0.net
>>834
ゲームエンジンだからってゲーム製作を強制されてるわけじゃないしマルチプラットフォーム楽だから提案しただけ
情報はそれなりに多いしC#でスマホアプリ開発したいなら余裕で候補に入ってくると思うけど
850:デフォルトの名無しさん (ドコグロ MM74-f0Z7)
16/12/15 23:55:29.59 oGetrQbmM.net
ゲームでもないのにUnityはありえないな
851:デフォルトの名無しさん (ワッチョイ 35dc-JvIx)
16/12/16 00:09:14.95 oD0nT6zl0.net
今はXamarinもタダでVSに付いてくるからな
852:デフォルトの名無しさん (ササクッテロル Sp29-DuXA)
16/12/16 14:15:42.62 +kSjzPrMp.net
>>837
Unity使ってゲームじゃないもの複数リリースしてるわ俺
853:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/16 14:58:58.27 2fwYBe0Xd.net
変わった人ですね
854:デフォルトの名無しさん (JP 0Hf9-hLkw)
16/12/16 16:48:03.99 q/3Oja+oH.net
Xamarinってスマホ用のちょっとしたアプリをC#でちょちょいと書くくらいの用途だったら
十分使えるのかね?
855:デフォルトの名無しさん (ワッチョイ 794a-xySp)
16/12/16 17:30:52.01 3vYA7mHR0.net
>>814
CoreってまだPreviewでしょ?
856:デフォルトの名無しさん (ワッチョイ 3179-fmwP)
16/12/16 17:31:55.76 OhRUtX+J0.net
ionic2でスマホアプリ作った方が楽じゃない?
857:デフォルトの名無しさん (ワッチョイ 9523-8I6M)
16/12/16 18:33:01.02 pxUpeQjw0.net
>>842
URLリンク(www.publickey1.jp)
オープンソースの「.NET Core 1.0」、マイクロソフトが正式リリース。Windows/Linux/macOSに対応。 2016年6月28日
858:デフォルトの名無しさん (スププ Sdb8-WTZK)
16/12/16 19:33:08.33 2fwYBe0Xd.net
>>841
プログラマーのスキル次第だよ
859:デフォルトの名無しさん (ワッチョイ 34cb-rqOZ)
16/12/17 20:24:02.58 qwypf80K0.net
>>842
Cora!何ねぼけたこと言ってんだ!
860:デフォルトの名無しさん (ワッチョイ a030-0Nmv)
16/12/17 21:23:42.16 iwmBtcKB0.net
審議拒否
861:デフォルトの名無しさん (ワッチョイ bf0d-zrF5)
16/12/19 17:35:36.43 alVbxlzl0.net
無名関数をその場で実行したいのですがどうやればいいですか?
public void Hoge()
{
int fuga = 0;
//JSだと (function() { fuga++; })(fuga); みたいな書き方
() => {
fuga++;
}
Console.Write(fuga.ToString()); // 1
}
862:デフォルトの名無しさん (ワッチョイ b779-fmwP)
16/12/19 17:55:39.16 C2gHCNQF0.net
jsと同じ仕方で出来ない?
(()=>{})()
863:デフォルトの名無しさん (ワッチョイ bf0d-zrF5)
16/12/19 18:00:28.82 alVbxlzl0.net
>>849
「メソッド名が必要です」とエラーが出ます。何か間違っているのでしょうか・・・?
URLリンク(i.imgur.com)
864:デフォルトの名無しさん (ワッチョイ 9519-qvaQ)
16/12/19 18:07:22.05 /uogIQCg0.net
型が必要
new Action(() => fuga++)();
((Action)(() => fuga++)))();
865:デフォルトの名無しさん (ワッチョイ bf0d-zrF5)
16/12/19 18:22:45.50 alVbxlzl0.net
>>851
できました!
ありがとうございます!
866:デフォルトの名無しさん (アウアウオー Sa36-yl9W)
16/12/19 18:43:30.73 3c7S3m0Fa.net
何の意味がw
867:デフォルトの名無しさん (ワッチョイ b779-fmwP)
16/12/19 18:55:26.87 C2gHCNQF0.net
あっそっか
C#はscalaとかjsと違って名前で判別してるんだった
868:デフォルトの名無しさん (ブーイモ MMe5-JvIx)
16/12/19 19:16:31.85 U/zOmskaM.net
デリゲート型宣言は、イベントをオブジェクト指向に持ち込むためだけにデリゲートが存在していた時代の名残だね
今作り直したら確実に無くなるものの筆頭
869:デフォルトの名無しさん (ワキゲー MMe6-qmcu)
16/12/19 19:24:00.11 s6nMQ4X7M.net
多値がまだない今だとref/outが
870:デフォルトの名無しさん (アウアウオー Sa36-yl9W)
16/12/19 19:34:56.44 3c7S3m0Fa.net
>>855
そんなわけないでしょw
勘違いはなはだしいな
871:デフォルトの名無しさん (ブーイモ MMe5-JvIx)
16/12/19 20:16:21.66 U/zOmskaM.net
>>857
昔はデリゲートなんかほんとにイベントの裏方のカスみたいな存在だったよ
もはや死語となったマルチキャストデリゲートも今じゃありえない設計判断
872:デフォルトの名無しさん (ブーイモ MM8d-Qnvt)
16/12/19 20:27:48.59 Ph61c/PCM.net
そうなのか?Taskへの書き換えが楽だからマルチキャスト多用してるわ
873:デフォルトの名無しさん (ワッチョイ 9d23-8I6M)
16/12/19 20:38:22.46 OLcwTH7T0.net
prismのEventAggregatorでは、マルチキャストどころか多対多のイベントがサポートされている
これとprism..Unitiy使い始めると設計が根本から変わわるよね
874:デフォルトの名無しさん (ワッチョイ 35dc-JvIx)
16/12/19 20:43:17.00 t+mkU7Kd0.net
TaskならContinueWithやWhenAll使いなよ
マルチキャストだと戻り値取れないだろ?
後でTaskに乗り換えようとしてもコードが副作用だらけになってて排他処理が必要になるはずだから
置き換えはそう簡単にはいかないだろう
875:デフォルトの名無しさん (ワンミングク MM40-Qnvt)
16/12/19 20:46:00.65 cSqZiFK0M.net
いや呼び出し部はちゃんど自分でバラして戻り値取ってるよ
876:デフォルトの名無しさん (ワッチョイ 35dc-JvIx)
16/12/19 20:50:55.64 t+mkU7Kd0.net
>>862
それマルチキャスト使う意味ある?
List<Func<>>でいいじゃん
MulticastDelegateをバラすと型情報も無くなるしパフォーマンスも悪い
百害あって一理なし
877:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh)
16/12/19 22:35:52.95 SUXs8zgR0.net
スレチかもしれませがすみません
C#の勉強の延長でASPでwebアプリ作ってみようかと思ってるんですがASP.NETでのwebアプリの開発って主流の一つに入るんでしょうか
878:デフォルトの名無しさん (ワッチョイ 35dc-6+SE)
16/12/19 22:41:34.98 t+mkU7Kd0.net
>>864
今から始めるならASP.NET MVCにしとけ
無印の方のASP.NET(WebForms)はドカタ技術
879:デフォルトの名無しさん (ワッチョイ 413c-bVUl)
16/12/19 23:07:17.43 MBhcE2/40.net
>>864
Webアプリで何がしたいの?
880:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh)
16/12/19 23:08:48.47 SUXs8zgR0.net
>>865
ありがとうございます
ASP.NETの知識無しでMVCのほうから入っても問題ないのですか?
881:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh)
16/12/19 23:13:07.51 SUXs8zgR0.net
>>866
特に決めてはいないですが、在庫管理やらの業務系が出来ればと考えてます
882:デフォルトの名無しさん (ワッチョイ 413c-bVUl)
16/12/19 23:20:50.16 MBhcE2/40.net
>>868
それなら.NET CoreじゃなくてまだFullの.NET Frameworkでいいね
883:デフォルトの名無しさん (ワッチョイ 35dc-6+SE)
16/12/19 23:53:29.04 t+mkU7Kd0.net
>>867
別物だから問題ない
.NET開発としてではなく一般的なWeb開発の技術として主流かどうかを気にしてるなら断然MVCの方がいい
いわゆるWebMVCといってWeb開発においては非常に一般的なアーキテクチャを採用してるからな
無印の方はWinFormsのようなものを無理やりWeb上に再現した変態技術だが、
お前らの独自技術はもういいからWebらしいフレームワークが欲しいというニーズに応えて「普通な」MVCができた
884:デフォルトの名無しさん (ワッチョイ 413c-bVUl)
16/12/19 23:54:58.14 MBhcE2/40.net
>>870
今どき無印とは言わねーよ
885:デフォルトの名無しさん (ワッチョイ bf49-TtuQ)
16/12/19 23:57:07.79 yUAE2IHm0.net
>>867
問題ない。
>>869
いきなりそんなこと言っても何のことだか分からんと思うぞ。
そもそもCoreのこと聞いてないし。
886:デフォルトの名無しさん (ワッチョイ 413c-bVUl)
16/12/20 00:19:37.86 woy83GfY0.net
>>872
自分で調べるだろ
わからなけりゃまた聞いてくるだろうし
今から始めるやつはそもそもWeb formsなんか対象にならないだろうから、Coreと比べるのは妥当
887:デフォルトの名無しさん (ワッチョイ 3a13-WTZK)
16/12/20 01:09:58.52 bQKX6Z8E0.net
屁理屈言うなよ
888:デフォルトの名無しさん (スプッッ Sdc8-bVUl)
16/12/20 02:18:50.01 usQ/Ng63d.net
>>874
至極まともな考えだと思うが
889:デフォルトの名無しさん (ワッチョイ 35dc-6+SE)
16/12/20 07:30:35.17 wmh5vlKz0.net
今はASP.NET自体も無印とCoreに分裂してるから紛らわしい
このジャップ国でASP.NETに入門しようとしたら平気でWebFormsの情報ばかり出てくるから
とりあえずはそこさえ間違えなきゃいいと思うけどね
いきなりCoreは日本語の情報少なくて厳しいと思う
890:デフォルトの名無しさん (ワッチョイ 2d5b-yrUh)
16/12/20 07:55:39.72 1rO91uPl0.net
>>864です
みなさんありがとうございます
大変参考になりました。聞いてよかったです
色々出して頂いたものは今から調べてみたいと思います
891:デフォルトの名無しさん (ブーイモ MM8d-3Pgg)
16/12/20 19:05:30.30 ZJa7dsMxM.net
web formsはあれはあれでよく出来てるよ
経験の浅い若手を使って業務用システムをサッと作りたいときとかね
もちろん保守は他社がやると見込める時だけだが
892:デフォルトの名無しさん (ワッチョイ 6751-g1cW)
16/12/22 23:43:30.19 GClofaGB0.net
C#を三か月前から勉強し始めました。
家でも勉強したくてパソコンにVS入れたいのですが、2015をインストールしたら,
Blend2015というのがインストールされました。
無料版ではComminityとExpressがあって、Comminityのほうがおすすめと聞いたのでそっちを入れたかったのですが・・・
Blendとはいったいどういう位置づけになるのですか?
会社ではVisualStudio2013Professionalを使っています。
893:デフォルトの名無しさん (ワッチョイ b749-AD9A)
16/12/22 23:52:13.67 x9LZEgeN0.net
>>879
VisualStudioに付いてくるおまけ。
WPFでGUIをデザインするためのツール。
Comminityを入れたんなら、Blendとは別にComminityの方も入ってるだろ。
894:デフォルトの名無しさん (ワッチョイ b749-AD9A)
16/12/22 23:53:53.81 x9LZEgeN0.net
あれ、community、だな。
895:デフォルトの名無しさん (ワッチョイ 6751-g1cW)
16/12/23 00:07:02.38 eKejh9BS0.net
>>880
communityをインストールしようとしたらなぜかBlendになってました・・・。
2015もcommunityありますよね?
ありがとうございます。インストr-ルやりなおしてみます
896:デフォルトの名無しさん (スフッ Sddf-Khx9)
16/12/23 00:13:03.88 nw5SwlgYd.net
Visual Studio入れるとBlendが付いてくる
アプリケーションの一覧にVisual Studioのフォルダが出来てないか?
897:デフォルトの名無しさん (ワッチョイ 0379-d0Xh)
16/12/23 00:15:51.67 P0PUtLY+0.net
Blend版が付いてくるのを知らなくて、普通のVS起動していたつもりがBlend起動してて、設定項目が見つからず6時間くらい無駄にした思い出
898:デフォルトの名無しさん (ワッチョイ b749-AD9A)
16/12/23 00:19:34.19 et7LM/Li0.net
>>882
Blendだけ入るって無いと思うけど。両方入っているはず。
落ち着いてメニューをよく見たら。
899:デフォルトの名無しさん (ワッチョイ 73dc-PUH/)
16/12/23 00:19:39.42 Boa5/2YS0.net
仕事で使うための勉強ならBlendなんか用無しだろ
ASP.NETとWinFormsだけやっとけばいい
900:デフォルトの名無しさん (ワッチョイ e75e-g1cW)
16/12/23 00:24:53.07 ydrXOK0X0.net
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
>>882
必ず入っているはず。
むしろBlend版とか知らなくて、そのレス見てからサインインしたw
901:デフォルトの名無しさん (アウアウカー Sa3f-fflT)
16/12/23 15:03:31.78 8qbb8kwia.net
Coreの話
902:が出てたけど、ラズパイにwebアプリをデプロイできるの?
903:デフォルトの名無しさん (ワッチョイ 273c-GTRU)
16/12/23 15:17:21.07 ThcKA0lt0.net
>>888
ロードマップでは、ARM対応はQ4 2016 / Q1 2017ってなってた。Samsungが確か頑張ってるはず。
904:デフォルトの名無しさん (アウアウカー Sa3f-fflT)
16/12/23 17:23:34.06 9xVG4ZuTa.net
>>889
そうなのね!ありがとう
905:デフォルトの名無しさん (ワッチョイ 6751-g1cW)
16/12/23 18:46:44.52 eKejh9BS0.net
>>883,884,885,886,887
返信ありがとうございます
インストール一覧を調べてみたところcommunityも入っていました
もっと確認すべきでした・・・
どうもありごうございました。
906:デフォルトの名無しさん (ワッチョイ d7ce-agOw)
16/12/23 21:53:23.45 Lyl7nXDN0.net
余計な物も入れてくるから嫌いなんだよなあインストーラー
IDE必要ないからexeビルド環境だけ入るようなオプションない?
907:デフォルトの名無しさん (ワッチョイ efa1-YuIQ)
16/12/23 22:11:13.66 wnG5DWev0.net
csc.exeなら.NET Frameworkに含まれてんじゃないっけ
908:デフォルトの名無しさん (ワッチョイ 4779-d0Xh)
16/12/23 22:39:52.11 6njdFiip0.net
csc.exeはデフォで付いてくる
IDE入れないとコンパイラ入れられない言語とかない
909:デフォルトの名無しさん (ワッチョイ 0f7b-SerI)
16/12/23 22:43:28.69 jiSEHcxr0.net
YouTube にある、T Umezawa の「メモ帳でC#超入門 #16」
ニコ生で放送しているのか?
よく知らないけど、昨日、#16 がアップされた
910:デフォルトの名無しさん (ワッチョイ e30d-agOw)
16/12/23 22:46:42.71 8ECS/mff0.net
自作自演の宣伝きめぇ
911:デフォルトの名無しさん (ワッチョイ 4779-d0Xh)
16/12/23 22:55:02.72 6njdFiip0.net
メモ帳とかメリットなさすぎ
VSが重くて嫌ならVSCodeおすすめ
912:デフォルトの名無しさん (ブーイモ MM8f-ncxm)
16/12/23 23:04:29.79 gDLxrLVpM.net
VSは機能の割には無茶苦茶軽いと思うけどな
しかもゴッテゴテのWPFアプリなのに
913:デフォルトの名無しさん (ブーイモ MM3f-lsSM)
16/12/23 23:05:50.84 MNqe+TxRM.net
WPFが重いって無能が作り上げた先入観でしかないんだよね
914:デフォルトの名無しさん (ワッチョイ f3d6-i5Qz)
16/12/23 23:09:15.19 ejzKG2eK0.net
超低スペックなパソコンを後生大事に使い続ける貧乏人が文句言ってるだけ
915:デフォルトの名無しさん (ワッチョイ abc0-g1cW)
16/12/23 23:28:01.18 c2xEt3tE0.net
低スペPC使っているけど、VSは2010以前とそれ以降で重さが段違いだな
916:デフォルトの名無しさん (ワッチョイ 4779-d0Xh)
16/12/23 23:35:32.33 6njdFiip0.net
>>898
Eclipseに比べたらかなり軽いよね
JavaとかScalaもVSに対応してほしい
917:デフォルトの名無しさん (ワッチョイ ab3c-g1cW)
16/12/23 23:36:01.09 Fo6fBKop0.net
2017は必要なものだけで立ち上げられるんだろ?
918:デフォルトの名無しさん (ブーイモ MM3f-lsSM)
16/12/23 23:38:37.93 MNqe+TxRM.net
次はインストールも爆速になるらしいな
最近のMicrosoftさん頑張りすぎ
ORACLEも少しはMicrosoftを見習ってほしい
919:デフォルトの名無しさん (ワッチョイ 4779-d0Xh)
16/12/23 23:42:33.40 6njdFiip0.net
インストールは寝る前にするからあまり関係ないけどね
920:デフォルトの名無しさん (ブーイモ MM8f-ncxm)
16/12/23 23:43:37.75 gDLxrLVpM.net
>>899
VSの成功が証明してるようにスケーラビリティが高いのは確かだけど、
実際小さなアプリに使うには重いよ
921:デフォルトの名無しさん (ワッチョイ 4779-d0Xh)
16/12/23 23:45:24.81 6njdFiip0.net
WPFはバインドがなー
Angularとかの自動更新になれるとね
922:デフォルトの名無しさん (ワッチョイ 273c-GTRU)
16/12/24 00:09:01.03 LpJ8AJuF0.net
>>892
Cake使えば?
923:デフォルトの名無しさん (ワッチョイ ef9f-h9rX)
16/12/24 01:10:24.95 YCrD1JsG0.net
>>894
なんで自信ありそうに言いきってるの?
IDE入れないといけない言語はあるよ
924:デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z)
16/12/24 09:08:23.75 dPbQS77J0.net
>>909
具体的に何よ?
925:デフォルトの名無しさん (ワッチョイ 73dc-ncxm)
16/12/24 09:26:43.36 3LTJc3r/0.net
Smalltalkとか昔のVBやDelphiとか
926:デフォルトの名無しさん (ワッチョイ 8f42-3ZJ0)
16/12/24 10:07:04.78 Uz+bz49d0.net
コンパイラ?
927:デフォルトの名無しさん (アウアウカー Sa3f-a5Nx)
16/12/24 10:09:16.39 VcKJc7+aa.net
powerbuilderもだった
928:デフォルトの名無しさん (ワッチョイ 2f23-g1cW)
16/12/24 11:28:12.62 prTI7XBj0.net
>>912
昔のVBもDelphiもコンパイラなんだけどw
929:デフォルトの名無しさん (オッペケ Srcf-qdr/)
16/12/24 13:38:48.90 HbE0faQGr.net
ウインフォームアプリ作ったんだけどインストーラーとかアップデータとかも自分で作るの?
930:デフォルトの名無しさん (ワッチョイ 273c-GTRU)
16/12/24 13:40:12.31 LpJ8AJuF0.net
>>915
ClickOnce
931:デフォルトの名無しさん (ワッチョイ ef9f-h9rX)
16/12/24 13:41:59.25 yr6q9nVG0.net
VBAとかSmall BasicとかScratchとかもそうじゃね
932:デフォルトの名無しさん (オッペケ Srcf-qdr/)
16/12/24 13:56:05.59 HbE0faQGr.net
>>916
それってオワコンなんじゃないの?
933:デフォルトの名無しさん (ブーイモ MM5f-ncxm)
16/12/24 14:01:46.96 1tLIoM8kM.net
>>918
それを言ったらWinFormsもオワコンだよ
今生きてるのはASP.NETとUWPだけ
934:デフォルトの名無しさん (ワッチョイ abc0-g1cW)
16/12/24 14:03:16.98 a9e/NRk30.net
オワコンだけど代替がないってのがね
935:デフォルトの名無しさん (ワッチョイ 379d-i5Qz)
16/12/24 14:23:05.13 2536g+Dg0.net
MSもWinFormsに回帰、注力すべき
936:デフォルトの名無しさん (ワッチョイ 2f23-g1cW)
16/12/24 14:35:55.93 prTI7XBj0.net
拡張機能からNuGetでVisualStudioInstaller入れられるの知らないのカー
937:デフォルトの名無しさん (ワッチョイ e33c-IeCC)
16/12/24 15:17:55.11 hhClfuXq0.net
並列処理を行いたいんですがどうすればいいでしょうか?
しかも複数の並列処理で同一のコントロール(TextBox1.text)
に同時に書き込めるようにしたいです(書き込む順番はきにしません)
あとそれぞれの並列処理を無限ループで繰り返し処理を行いたいと
思っております。
どなたか教えてください。どうぞよろしくお願いします
938:デフォルトの名無しさん (オッペケ Sref-AvAH)
16/12/24 15:19:37.36 JBAVj1Vvr.net
>>899
無能と言うか変化について行けない頭固い人だね。
所謂老害かな。
939:デフォルトの名無しさん (ワッチョイ 273c-GTRU)
16/12/24 15:20:33.37 LpJ8AJuF0.net
>>918
その要件を簡単に実現できる方法が他にない。
940:デフォルトの名無しさん (オッペケ Sref-AvAH)
16/12/24 15:21:12.81 JBAVj1Vvr.net
>>923
async, await 一択。
941:デフォルトの名無しさん (ワッチョイ 8f13-i5Qz)
16/12/24 15:21:23.94 XrRMaYjq0.net
>>909
たとえば?
942:デフォルトの名無しさん (ワッチョイ d7ce-agOw)
16/12/24 16:08:14.24 yMvVW4sX0.net
>>923
System.Windows.Forms.Control.Invoke経由で書き込むだけ
943:デフォルトの名無しさん (ブーイモ MM5f-ncxm)
16/12/24 16:10:19.44 RJkhT4CTM.net
>>923
ワーカースレッドから好き勝手にGUI触るとカオスになるから、Producer-Consumerで分離すれば?
複雑なことをやるならGUIからではなくデザイン(見た目じゃないよ)から入る作り方も覚えていったほうがいい
944:デフォルトの名無しさん (ワッチョイ 8f13-0LB+)
16/12/24 16:17:45.91 cCwHGfM40.net
>>928
これだな
945:デフォルトの名無しさん (ワッチョイ 73dc-ncxm)
16/12/24 16:27:12.97 3LTJc3r/0.net
>>924
悪いけど、今時WPF推しとかそれこそ老害だと思うぞ
立ち止まって周りを見てみろ
946:デフォルトの名無しさん (ワッチョイ b77b-g1cW)
16/12/24 16:28:09.91 YD9ZIllA0.net
話の流れが読めない人?
947:923 (ワッチョイ e33c-IeCC)
16/12/24 17:08:45.84 hhClfuXq0.net
みなさんありがとうございます。
自分なりに調べて以下の通りつくってみました
「3秒まってコンソールに文字列を出力する」という処理を並列で動作させたかったのですが
どうもそれぞれの処理が単体で実行されるだけで並列処理になっていないようです。
以下の処理を並列で実行できるようにするにはどうすればよろしいでしょうか?
private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
await Task.Run(() => Thread.Sleep(3000));
Console.WriteLine("タスク完了");
}
}
948:デフォルトの名無しさん (オッペケ Srcf-qdr/)
16/12/24 17:10:58.57 HbE0faQGr.net
>>919
>>925
>>920
そっかあ
面倒だけど自作するか…
もうおっさんだからWinForm以外習得できん
949:デフォルトの名無しさん (オッペケ Srcf-qdr/)
16/12/24 17:12:35.93 HbE0faQGr.net
>>922
あれ…記憶にないけどインストールしてあったw
まあアップデータは自作になるか…
950:デフォルトの名無しさん (ブーイモ MM3f-TACi)
16/12/24 17:21:30.45 Jrqe8RRjM.net
>>933
その例は
「3秒まってコンソールに文字列を出力する」
ってタスクを無限個作りたいのん?
最初は2個にしておけば?
951:923 (ワッチョイ e33c-IeCC)
16/12/24 17:33:48.36 hhClfuXq0.net
>>936
はいそうです
2個でも問題ありません。
簡単なサンプルとか頂ければ大変助かります
大変恐縮ですがどうぞよろしくお願い致します
952:デフォルトの名無しさん (オッペケ Sref-AvAH)
16/12/24 17:39:03.48 JBAVj1Vvr.net
>>933
> 以下の処理
これが意味不明だけど。
十分並列にはなってる。
953:923 (ワッチョイ e33c-IeCC)
16/12/24 17:52:32.66 hhClfuXq0.net
>>938
そうなんですね。ご指摘ありがとうございます。
ただ私の想定としては、「3秒待って出力」という処理を
複数同時に開始したいと思っておりました
ですがコンソールに出力されるタイミングは3秒おきに1処理分しか
出力されず、非同期処理と変わらない処理となっているような気がします
上で示したサンプルがわかりづらくて申し訳ありませんが
タスクは2個でも3個でも同時並列で処理できれば問題ありません
大変恐縮ですがご教示頂ければと思います
954:デフォルトの名無しさん (ワッチョイ 3b3a-a3YU)
16/12/24 18:00:04.01 kAw8XX2k0.net
>>937
void TaskTest() {
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
}
955:923 (ワッチョイ e33c-IeCC)
16/12/24 18:29:36.15 hhClfuXq0.net
>>940
ありがとうございます!
ちなみにテキストボックスなどに内容を出力することって出来ますでしょうか?
これらの処理をりようして
TextBox1.Textに内容を出力する処理をそれぞれのタスクに追加すると
エラーになってしまうようです。
お手数おかけしますがよろしくおねがいします。
956:デフォルトの名無しさん (ワッチョイ 8f13-0LB+)
16/12/24 18:40:47.89 cCwHGfM40.net
>>941
>>928
957:923 (ワッチョイ e33c-IeCC)
16/12/24 18:41:21.02 hhClfuXq0.net
これだとやっぱり3秒毎に1処理実行されるだけなんですね・・・
async Task<string> TaskTest()
{
await Task.Delay(3000);
return "a";
}
private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
TextBox1.Text += await TaskTest();
Application.DoEvents();
}
}
958:923 (ワッチョイ e33c-IeCC)
16/12/24 18:51:54.77 hhClfuXq0.net
>>942
ありがとうございます。
ただやっぱり並列にはなりませんでした・・・
なにがまちがってるんでしょうか・・・?
while (true)
{
await Task.Factory.StartNew(() =>
{
Invoke((MethodInvoker)(() =>
{
Thread.Sleep(3000);
TextBox1.Text += "a";
}));
});
}
959:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/24 19:04:14.66 iV5eYun00.net
while(true)で無限にTaskを作るとOutOfMemoryExceptionになるから
Parallel使って10個ずつくらいに制限して、
TextBoxへの書き込みにはProgressを使うとこんな感じ
private void button1_Click_1(object sender, EventArgs e)
{
IProgress<string> progress = new Progress<string>(text =>
{
TextBox1.Text += text;
});
Task.Run(() =>
{
while (true)
{
Parallel.For(0, 10, i =>
{
System.Threading.Thread.Sleep(3000);
progress.Report("a");
});
}
});
}
960:923 (ワッチョイ e33c-IeCC)
16/12/24 19:13:46.70 hhClfuXq0.net
ありがとうございました!大変助かりました!
お手数おかけして申し訳ありませんでした
961:923 (ワッチョイ e33c-IeCC)
16/12/24 20:17:57.50 hhClfuXq0.net
>>945
おかげさまで仕事がはかどりました
改めてありがとうございました。
ただ、ソースをよく読んでみると
Parallel.Forというのがあるので
Task使わなくても問題なさそうですね
(C#歴は1ヶ月程度なので違ってるかもしれませんが)
962:デフォルトの名無しさん (ブーイモ MM3f-TACi)
16/12/24 20:23:51.87 Jrqe8RRjM.net
>>945
Progressなんてクラスが居たのね。こいつは捗りそう。
963:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/24 20:25:53.45 iV5eYun00.net
>>947
Parallelは完了まで自スレッドをロックしてしまう
(つまり、並列ではあるけど非同期ではない)ので
UIスレッドをフリーズさせないためにはTaskとの併用が必要
964:923 (ワッチョイ e33c-IeCC)
16/12/24 20:51:06.97 hhClfuXq0.net
なるほど。ありがとうございました!
965:デフォルトの名無しさん (アウアウカー Sa3f-qibb)
16/12/24 21:56:05.36 AwL0H4eka.net
おまえら割とマジですげぇわ
966:デフォルトの名無しさん (ワッチョイ ab3c-g1cW)
16/12/24 22:01:11.57 LTc/wMbf0.net
俺は初心者だからかもしれんが
ここに世界中の天才が集まってるのかとと思うわ
967:デフォルトの名無しさん (ワッチョイ bfcb-oYiN)
16/12/25 19:11:38.15 liHUAEex0.net
かわいい奴
968:デフォルトの名無しさん (ワッチョイ e33c-IeCC)
16/12/26 00:25:16.13 0WzKTwBd0.net
時刻だけ比較したいんですがそんなことってできます?
例えば現在時刻が13:30以降の時のみtrueを返すような時ってどうすればいいですか?
969:デフォルトの名無しさん (ワッチョイ 8f13-7bim)
16/12/26 00:35:44.64 TE+B1lbE0.net
>>954
これでどう?
var now = DateTime.Now;
var time = new DateTime(now.Year, now.Month, now.Day, 13, 30, 0);
return time <= now;
970:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/26 00:46:35.20 +7V9eNZX0.net
こんなのも
TimeSpan referenceTime = new TimeSpan(13, 30, 0);
return DateTime.Now.TimeOfDay >= referenceTime;
971:デフォルトの名無しさん (ワッチョイ 3bc9-DLF2)
16/12/26 00:54:59.31 AQNPYjTP0.net
単に
((DateTime.Now.Hour == 13 && DateTime.Now.Minute >= 30) || DateTime.Now.Hour > 13)
じゃいかんのか
972:デフォルトの名無しさん (ワッチョイ e33c-IeCC)
16/12/26 01:08:14.89 0WzKTwBd0.net
ありがとうございました!
973:デフォルトの名無しさん (ワッチョイ 379d-i5Qz)
16/12/26 02:19:47.23 CIVIxVtu0.net
今回のケースに限ったことじゃないんだけど、
1回のif文でNowを複数回参照して、Nowが全部同じ値だという保証はあるのかな?
974:デフォルトの名無しさん (ワッチョイ 8f13-0LB+)
16/12/26 02:47:24.74 TE+B1lbE0.net
>>959
ないよ
975:デフォルトの名無しさん (ブーイモ MM5f-TACi)
16/12/26 12:35:23.91 cti1899cM.net
13:59:59から14:00:00の変わり目だけに起こるバグとか、怖いっす
976:デフォルトの名無しさん (ワッチョイ 2f23-g1cW)
16/12/26 13:03:53.01 Bu04EBir0.net
どうしても気になるなら、先に分を比較すればバグることはない
977:デフォルトの名無しさん (ワッチョイ 8f42-lvdU)
16/12/26 14:07:19.56 UJaB3lV20.net
そんな対処せずに1回の比較で終わるようにしときゃいいやん
978:デフォルトの名無しさん (スフッ Sddf-0LB+)
16/12/26 14:13:47.94 qgo+g5wcd.net
だから>>955みたいに先にNowを保存すればいいだろ
ウダウダ悩んでるおまえ等が信じられんわw
979:デフォルトの名無しさん (アウアウオー Saff-iGc/)
16/12/26 14:18:36.34 1bhMGPyja.net
どうでもいいけど、そもそも「現在時刻が13:30以降の時のみtrue」って要件はかなりあいまいだね。
980:デフォルトの名無しさん (JP 0Hef-g1cW)
16/12/26 14:24:40.84 E1wmt4rJH.net
23:59:59までtrueでいいんかとか
PCの内蔵タイマーの時刻でいいんかとか
タイムゾーンはどうなんかとか
981:デフォルトの名無しさん (ワッチョイ 837b-DNID)
16/12/26 14:38:43.61 G2ewta8d0.net
先生スレッドのカルチャー変えても比較出来るんですか
982:デフォルトの名無しさん (ワッチョイ 63a4-zpPG)
16/12/26 17:15:25.72 faSaUmiF0.net
TextBox1とTexBox2(非表示)があります。
TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。
TextBox1のEnter時に
TextBox2.Visible = true;
TextBox2.Select();
と書き、TextBox2のLeave時に
TextBox2.Visible = false;
と書きました。実行してみるとTextBox2が点滅して消えてしまいます。
調べてみるとLeave時の処理が3回実行されているようで、さらに
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
Doing so can cause your application or the operating system to stop responding.
フォーカスの設定をするなと書いてあるようです。
最悪、透明なボタンでも設置して無理矢理実現するしかないのかなと考えていますが、
フォーカス取得時に別のテキストボックスに移動することはできませんか?
983:デフォルトの名無しさん (ワッチョイ e30d-agOw)
16/12/26 17:20:02.90 uTypYcaG0.net
WPFは駄目って言ってる奴いるけど、じゃあ何で作るんだ?
まさか制限盛りだくさんのUWPとか言わないよな?
984:デフォルトの名無しさん (アウアウオー Saff-iGc/)
16/12/26 17:31:38.03 1bhMGPyja.net
>>968
なぜそんなアホなことをしたいの?
たぶん実現したい何らかの使用に対して君が思いついた方法がそれなんだどうけど
どう考えてもその方法は間違ってるから最終的にどういう仕様を実現したいかを
書いた方がいいと思うよ
985:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz)
16/12/26 17:31:53.92 ejLfwHLb0.net
そういう連中、WPFを知ってて言ってるわけじゃないもんな。
追及してやると主張が C#駄目 Windows駄目 デスクトップアプリ駄目 のどれかに変わる。
986:デフォルトの名無しさん (ワッチョイ abc0-g1cW)
16/12/26 17:36:34.58 BQIvjtl90.net
>>971
今その条件で作れと言われたら迷わずWPF選びたいけど、俺社環だとForm選ばざるを得ないのが辛い
987:デフォルトの名無しさん (ワッチョイ c33c-v5hB)
16/12/26 17:44:50.42 bXBxzWjM0.net
>俺社環だと
あるある
988:デフォルトの名無しさん (ワッチョイ 63a4-zpPG)
16/12/26 17:46:33.22 faSaUmiF0.net
>>970
郵便番号を入力する部分のテキストボックスを7つに分けたのですが、
入力時には1つにしたほうが入力しやすいだろうと思いました。
LabelにするとTabでフォーカスを受け取れないので連続で入力しにくいかなと思ったり、
そもそも郵便番号をわざわざ分けているのは、入力フォームを画像にして裏に貼り、
入力イメージが掴めるようにしようかなと思った次第ですが、別のテキストボックスに
入力させてそれをプレビューしちゃだめというわけでもないので出来ないのであれば
入力とプレビューをわけようと思いますが、テキストボックスがフォーカスを受け取ったら
バトンパスのように他のテキストボックスに移動するというのは出来ないのかなと思って質問しました。
989:デフォルトの名無しさん (ワッチョイ c33c-v5hB)
16/12/26 17:56:43.50 bXBxzWjM0.net
>郵便番号を入力する部分のテキストボックスを7つに分けたのですが
この時点でおかしいだろ(困惑)
990:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/26 18:15:12.11 qJ+YWzR60.net
入力しようとしてテキストボックスを選んだら勝手に次のテキストボックスに飛ぶって
嫌がらせにしかならない気が…(どうやって入力してもらうの…)
郵便番号の枠のイメージで1文字ずつの入力にしたいというのなら
1文字しか入力できないテキストボックスを7つ配置して、
入力されたら次に飛ぶ、文字が消されたら前に飛ぶ、みたいに作るのがいいのでは
991:デフォルトの名無しさん (アウアウオー Saff-iGc/)
16/12/26 18:28:31.17 1bhMGPyja.net
>>974
ハガキや封書の〒記入欄の見た目に似せたいってことかもしれんけど、
そんなくだらない仕様を諦めるわけにいかないの?
ありがた迷惑なだけでメリットないと思うけど
郵便番号を入力するUIなんて割と多いけどそんなヘンテコな仕様見たことないよw
992:デフォルトの名無しさん (ワッチョイ d7ce-agOw)
16/12/26 19:05:18.45 /iMD3zus0.net
話を一般化すると、プロダクトID入力画面みたいに
指定桁だけ入力し終わったら次のテキストボックスに移動したいのかな
TextChangedとSelectNextControlかな
993:デフォルトの名無しさん (ワッチョイ 2f23-g1cW)
16/12/26 19:38:22.72 Bu04EBir0.net
>>969
Cのライブラリ使ったりDataGridが何とかなりそうなら、UWPも悪くない選択肢だよ
コントロールも標準で沢山ついてくるしtoolkitも充実している
994:デフォルトの名無しさん (ワッチョイ 2f23-g1cW)
16/12/26 19:43:38.71 Bu04EBir0.net
郵便番号程度なら、パネルから派生させたフルスクラッチでコントロール作っても大したことない気がするな
これからも使いそうなら作っちまえよ
995:デフォルトの名無しさん (ワッチョイ 5394-4hBO)
16/12/26 19:52:33.70 5v43Qgq70.net
>TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
>TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。
というのは、入力しようとすると別途用意された入力フォームが開く、みたいなUIを模したいのかなぁ
とりあえず >>968 はこれで実現できる
private void TextBox1_Enter(object sender, EventArgs e)
{
new Task(() =>
{
TextBox2.Visible = true;
TextBox2.Select();
})
.Start(TaskScheduler.FromCurrentSynchronizationContext());
}
フォーカスイベントの連鎖から独立した別スレッドからUIスレッドに指示を出すので
>set focus from within the Enter, GotFocus, Leave, LostFocus, Validating, or Validated event handlers
には当たらないと思う
996:デフォルトの名無しさん (JP 0Hcf-Qa15)
16/12/26 20:00:08.21 K98gijPEH.net
役所が1セルに1文字しか入力しちゃいけないExcelフォーマット量産してるって
話を思い出した
997:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz)
16/12/26 20:14:39.87 ejLfwHLb0.net
UWPは配布が一番のネックだな。
プログラミング需要のある程度の割合を企業内ユースが占めていると思うけど、
そういう用途じゃわざわざUWPなんて使わんよな。せいぜいWinRT。
さらに、今の時点だとまだWindows7を無視できないから結局FormsかWPFってところじゃない?
998:デフォルトの名無しさん (ワッチョイ 9faf-pRKv)
16/12/26 21:10:56.35 yrQs6qFs0.net
ストア配布なら企業内以上に一般も難しそう
欲しいソフトがあるときはWindowsはストアで探すよりも検索してベクターなり窓の社なりから探してくる人が多いし
999:デフォルトの名無しさん (ワッチョイ c33c-v5hB)
16/12/26 21:25:19.92 bXBxzWjM0.net
Winはそうよね
海外はどうか知らんが
1000:デフォルトの名無しさん (ワッチョイ e30d-agOw)
16/12/26 22:27:21.69 uTypYcaG0.net
じゃあ、>>756や>>931は間違ってるということでいいんですね
1001:デフォルトの名無しさん (アウアウオー Saff-iGc/)
16/12/26 23:49:51.33 nUdM+QKma.net
その手の問題は最終的には自分で答えを出すしかないでしょ。
個人的には2chくんだりで「いつも誰かと戦ってる」タイプの人のいうことは真に受けない方がいいと思うけどねw
それは彼がそんなくだらないことをするのか、その動機を考えれば自明だよね
俺個人としてはこの記事(すでに古い記事だけど)のタイトルがすべてだと思う
URLリンク(www.infoq.com)
Windows Formが終わってるのと同程度にはWPFも終わってる
かといってプランCも存在しない
1002:968 (ワッチョイ 736e-gQz9)
16/12/26 23:57:39.10 Z8alzA0s0.net
そこまでひどいUIとは思いませんでした。
おとなしく入力とプレビューを分けるようにします。
>>981は明日にでも試してみようと思います。
1003:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO)
16/12/27 01:33:51.84 SOm/Nt9E0.net
うめ
1004:デフォルトの名無しさん (ワッチョイ 5394-4hBO)
16/12/27 02:10:31.58 HrGPkQcW0.net
次スレ
ふらっと C#,C♯,C#(初心者用) Part126
スレリンク(tech板)
1005:デフォルトの名無しさん (ワッチョイ dfcb-vcjl)
16/12/27 02:44:38.87 Ue0MWe8H0.net
twitterのタイムラインのようなものを作ろうと思っているのですがどのようなコントロールを使えばいいのかがわかりません
どなたか私に教えていただけないでしょうか?
よろしくお願いします
1006:デフォルトの名無しさん (ワッチョイ 73dc-PUH/)
16/12/27 07:15:38.67 CsLSwhzy0.net
WebBrowser
1007:デフォルトの名無しさん (ワッチョイ 4791-t+3N)
16/12/27 14:02:51.16 DjR8onEe0.net
datagridviewでセルに何か書き込まれたときにそこが真ん中になるよう自動でスクロールしたいのですが
どうすればいいですか?
1008:デフォルトの名無しさん (ワッチョイ dfcb-vcjl)
16/12/27 14:19:39.59 Ue0MWe8H0.net
>>992
ご回答ありがとうございます
私の言葉が足らなかったようですみません
twitterのタイムラインをwebbrowserで表示するのではなくtwitterのAPIを使いツイートの情報を受け取りそれらをtwitterのタイムライン風に表示したいと考えております
1009:デフォルトの名無しさん (ワッチョイ 2b94-4hBO)
16/12/27 14:40:14.00 +TUrL10Q0.net
>>993
CurrentCellDirtyStateChangedかCellValueChangedイベントハンドラで
int offset = dataGridView.Rows.GetRowCount(DataGridViewElementStates.Displayed) / 2;
int current = dataGridView.CurrentCell.RowIndex;
dataGridView.FirstDisplayedScrollingRowIndex = Math.Max(0, current - offset);
スクロール量はoffsetの値に+-して調整
1010:デフォルトの名無しさん (ワッチョイ 4791-t+3N)
16/12/27 16:50:37.42 DjR8onEe0.net
>>995
なるほどオフセットと現在の位置で動かすのですか
思い通りにできましたありがとうございます
1011:デフォルトの名無しさん (ワッチョイ bf4c-hHku)
16/12/27 17:06:23.75 8I0GRdm60.net
うめ
1012:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO)
16/12/27 23:13:31.51 YmRmCI2N0.net
梅
1013:デフォルトの名無しさん (ワッチョイ 4f17-YQ1g)
16/12/27 23:58:49.99 tR2ogx270.net
う
1014:デフォルトの名無しさん (ワッチョイ 379d-i5Qz)
16/12/28 00:23:32.44 gZZUj22C0.net
1000ならWinForms大復活、2017以降は主力になる
1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています