質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

2回答

6348閲覧

Task.Runの書き方でわからないところが

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2016/11/18 19:59

###前提・実現したいこと
C#をVisual Studio2013を使って学習しています。

###発生している問題・エラーメッセージ
Task.Runを使って別スレッドでなにかするとき、以下のような記述をするとここを読んでわかったのですが、() => {}という記述はいったいなぜ必要なのでしょうか。また、() => {}とはいったいなんなのかが理解できません。どなたかご教授ください。

test.cs

1Task.Run(() => { 2//何かの処理 3});

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

デリゲートや非同期の正しい理解がないと、ガチ説明しても理解できないので、
ざっくりすごーく安易に雑に説明すると...

Task.Runはただのメソッドです。引数には、ActionFuncなどが入ります。

ActionFuncを変数として定義し、引数に入れることもきますが、今回のは、ラムダで書いているだけです。
それが、()=>{...}です。
()の部分は、メソッドの引数を定義しますが、からっぽ=引数なし、アローの後ろ{...}に処理を書いているだけです。

私の個人的におすすめとして、岩永さんのサイトのリンクをいくつか張っておきます。
ラムダ式
匿名関数
デリゲート

非同期やマルチスレッドは、(私個人的な考えでは)必須の知識で、簡単に使えるところがC#のいいところの一つですが、中途半端な理解で利用すると、地獄に落ちること(ちょっと大げさですねw)がありますのでしっかり勉強してみてください♪
そして、C#をエンジョイしてくださいねー♪

投稿2016/11/19 06:41

BEACHSIDE

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

()=>{...}はlambda式の記述法です。

理解したほうがよいと思える概念がここに簡単に記述できるほど小さくないと思えるので、ここで例を挙げるよりも「C# ラムダ式 デリゲート」で調べることと、「TaskクラスのRunメソッドの引数をリファレンスで確認し、引数の型の意味が分からなければその型をさらにリファレンスで調べること」を実践されることをお勧めします。

投稿2016/11/18 21:21

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問