タグ付けされた質問 「.net-4.5」

Microsoft .NET Frameworkのバージョン4.5。特に.NET Framework 4.5に関連する質問に使用します。.NET Frameworkに関する一般的な質問には、.netタグを使用します。

7
async / await-Task vs voidを返すとき?
どんなシナリオを使いたいのか public async Task AsyncMethod(int num) の代わりに public async void AsyncMethod(int num) 私が考えることができる唯一のシナリオは、タスクがその進捗状況を追跡できるようにする必要がある場合です。 さらに、次のメソッドでは、asyncおよびawaitキーワードは不要ですか? public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }

12
HttpClientとHttpClientHandlerはリクエスト間で破棄する必要がありますか?
System.Net.Http.HttpClientおよびSystem.Net.Http.HttpClientHandler.NET Framework 4.5のは、IDisposableを実装します(System.Net.Http.HttpMessageInvokerを介して)。 の using声明のドキュメントは言います: 原則として、IDisposableオブジェクトを使用する場合は、usingステートメントで宣言してインスタンス化する必要があります。 この回答はこのパターンを使用しています: var baseAddress = new Uri("http://example.com"); var cookieContainer = new CookieContainer(); using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer }) using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) { var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("foo", "bar"), …

3
Task.Runをメソッドに入れて非同期にする必要がありますか?
私は非同期待機を最も単純な形で理解しようとしています。この例のために2つの数値を追加する非常に単純なメソッドを作成したいと思います。当然のことながら、処理時間はまったくありません。ここで例を作成するだけです。 例1 private async Task DoWork1Async() { int result = 1 + 2; } 例2 private async Task DoWork2Async() { Task.Run( () => { int result = 1 + 2; }); } 待機DoWork1Async()すると、コードは同期または非同期で実行されますか? Task.RunUIスレッドをブロックしないように、メソッドを待機可能かつ非同期にするために同期コードをラップする必要がありますか? 私のメソッドがaであるTaskかreturn であるかを理解しようとしていますTask<T>が、コードをラップしTask.Runて非同期にする必要があります。 馬鹿げた質問だと思いますが、ネット上で非同期Task.Runまたはa やにラップされていないコードを待っている人々の例を目にしStartNewます。

7
C#で「return await」の目的は何ですか?
このようなメソッドを書くシナリオはありますか? public async Task<SomeResult> DoSomethingAsync() { // Some synchronous code might or might not be here... // return await DoAnotherThingAsync(); } これの代わりに: public Task<SomeResult> DoSomethingAsync() { // Some synchronous code might or might not be here... // return DoAnotherThingAsync(); } 理にかなっていますか? 内部呼び出しからreturn await直接戻ることができるのに、なぜ構文を使用するのですか?Task<T>DoAnotherThingAsync() return awaitたくさんの場所でコードが見つかるので、何かを見落としたかもしれません。しかし、私が理解している限り、この場合はasync / awaitキーワードを使用せず、タスクを直接返すことは機能的に同等です。なぜ追加awaitレイヤーの追加オーバーヘッドを追加するのですか?
251 c#  .net  .net-4.5  async-await 

10
結果が異なる複数のタスクを待機しています
私には3つのタスクがあります。 private async Task<Cat> FeedCat() {} private async Task<House> SellHouse() {} private async Task<Tesla> BuyCar() {} 私のコードを続行する前に、これらすべてを実行する必要があり、それぞれの結果も必要です。結果に共通点はありません 3つのタスクが呼び出されて完了するのを待って結果を取得するにはどうすればよいですか?

6
Task.Start / WaitとAsync / Awaitの違いは何ですか?
私は何かが足りないかもしれませんが、行うことの違いは何ですか: public void MyMethod() { Task t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(); } public async void MyMethod() { var result = Task.Factory.StartNew(DoSomethingThatTakesTime); await result; UpdateLabelToSayItsComplete(); } private void DoSomethingThatTakesTime() { Thread.Sleep(10000); }

5
.Net 4.0から4.5へのソリューションのターゲット変更-NuGetパッケージをターゲット変更する方法
現在VS2010の.NET 4.0をターゲットにしているソリューションをVS2012に移行しました。今度は.Net 4.5にターゲットを変更したいと思います よくわからないのはNuGetパッケージです。たとえば、VS2010でEF4から更新したEF5は、次のように実際にはEF 4.4であることがわかります。 <Reference Include="EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll</HintPath> </Reference> プロジェクトのpackages.configにも次のように表示されます。 <?xml version="1.0" encoding="utf-8"?> <packages> <package id="EntityFramework" version="5.0.0" targetFramework="net40" /> </packages> だから私の質問は: .NET 4.0を対象とするように現在設定されているすべてのNuGetパッケージを.NET 4.5を対象にリターゲットするためのベストプラクティスは何ですか?

2
型の初期化子を見つけるとNullReferenceExceptionがスローされるのはなぜですか?
これは私を困らせました。野田タイムのためにいくつかのテストを最適化しようとしていました。そこでは、いくつかのタイプ初期化チェックを行っています。すべてをnewにロードする前に、型に型初期化子(静的コンストラクターまたは初期化子付きの静的変数)があるかどうかを確認すると思いましたAppDomain。驚いたことに、この小テストが投げたNullReferenceException-にヌル値がされていないにも関わらず、私のコード。デバッグ情報なしでコンパイルされた場合にのみ例外をスローします。 これは、問題を示すための短いが完全なプログラムです。 using System; class Test { static Test() {} static void Main() { var cctor = typeof(Test).TypeInitializer; Console.WriteLine("Got initializer? {0}", cctor != null); } } そして、コンパイルと出力のトランスクリプト: c:\Users\Jon\Test>csc Test.cs Microsoft (R) Visual C# Compiler version 4.0.30319.17626 for Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. All rights reserved. c:\Users\Jon\Test>test …

1
Catch-22は、WIFによってセキュリティ保護可能なストリーミングTCP WCFサービスを防止します。私のクリスマス、メンタルヘルスを台無しにする
WIFを使用してストリーミングされたWCF net.tcpサービスエンドポイントを保護する必要があります。トークンサーバーに対して着信呼び出しを認証する必要があります。このサービスは、大量のデータを転送するように設計されているため、ストリーミングされます。 これは不可能のようです。 そして、もし私が捕まえられない場合、私のクリスマスは台無しになり、陽気な買い物客がゆっくりと冷えている体の上を歩き回る間、私は雨どいの中で自分を飲み殺してしまいます。トート深刻です、皆さん。 なぜこれが不可能なのですか?これがCatch-22です。 クライアントでは、トークンサーバーから取得したGenericXmlSecurityTokenを使用してチャネルを作成する必要があります。問題ありません。 // people around here hate the Framework Design Guidelines. var token = Authentication.Current._Token; var service = base.ChannelFactory.CreateChannelWithIssuedToken(token); return service.Derp(); 「問題ありません」と言いましたか?問題。実際には、NullReferenceExceptionスタイルの問題。 「ブロ、」私はフレームワークに尋ねました、「ヌルチェックすらしますか?」フレームワークはサイレントだったので、分解してみた ((IChannel)(object)tChannel). GetProperty<ChannelParameterCollection>(). Add(federatedClientCredentialsParameter); 例外の原因であり、GetProperty呼び出しが返されていたnull。それで、WTF?メッセージセキュリティをオンにして、クライアントの資格情報の種類をに設定するとIssuedToken、このプロパティがに存在することがClientFactoryわかります(ヒント:IChannelには同等の "SetProperty"はありません)。 <binding name="OMGWTFLOL22" transferMode="Streamed" > <security mode="Message"> <message clientCredentialType="IssuedToken"/> </security> </binding> 甘い。NREはもうありません。しかし、今私のクライアントは出生時に失敗しています(まだ彼を愛しています、tho)。WCF診断を掘り下げて(ヒント:最悪の敵を粉砕し、運転する前に運転して、女性と子供の悲嘆を楽しむ直前に)、サーバーとクライアント間のセキュリティの不一致が原因であると思います。 要求されたアップグレードは 'net.tcp:// localhost:49627 / MyService'ではサポートされていません。これは、バインディングの不一致が原因である可能性があります(たとえば、サーバーではなくクライアントでセキュリティが有効になっている)。 ホストの診断をチェックします(ここでも、クラッシュ、ドライブ、ログの読み取り、嘆きをお楽しみください)。これは本当です。 プロトコルタイプapplication …
181 c#  wcf  .net-4.5  wif  nettcpbinding 

5
Visual Studio 2010を介した.NET Framework 4.5のターゲティング
今日は、.NET Framework 4.5を自分のマシンにインストールしました。これは、Visual Studio 2010から問題なく使用できるマイナーアップデートであるため、Visual Studio 2010から使用できることを期待しています。残念ながら、特定の4.0を手動で削除しても対応する4.5アセンブリを追加すると、元の4.0アセンブリがプロジェクトで引き続き参照されます。 Visual Studio 2010からバージョン4.5をターゲットにすることはできますか?リボンを本当に使いたい…


4
待機中のタスクをキャンセルする方法は?
私はこれらのWindows 8 WinRTタスクで遊んでいて、以下の方法を使用してタスクをキャンセルしようとしていますが、それはある時点で機能します。CancelNotificationメソッドが呼び出されると、タスクがキャンセルされたように見えますが、バックグラウンドでタスクは実行を続け、その後、タスクが完了すると、タスクのステータスは常に完了し、キャンセルされることはありません。キャンセルされたときにタスクを完全に停止する方法はありますか? private async void TryTask() { CancellationTokenSource source = new CancellationTokenSource(); source.Token.Register(CancelNotification); source.CancelAfter(TimeSpan.FromSeconds(1)); var task = Task<int>.Factory.StartNew(() => slowFunc(1, 2), source.Token); await task; if (task.IsCompleted) { MessageDialog md = new MessageDialog(task.Result.ToString()); await md.ShowAsync(); } else { MessageDialog md = new MessageDialog("Uncompleted"); await md.ShowAsync(); } } private int slowFunc(int …

4
非同期/待機とBackgroundWorker
過去数日間、.net 4.5とc#5の新機能をテストしました。 新しい非同期/待機機能が気に入っています。以前、BackgroundWorkerを使用して、応答性の高いUIでバックグラウンドでより長いプロセスを処理していました。 私の質問は次のとおりです。これらの素晴らしい新機能を使用した後、いつasync / awaitを使用する必要があり、いつBackgroundWorkerを使用しますか?両方に共通するシナリオはどれですか?

8
別の非同期メソッドの代わりにイベントを待つことは可能ですか?
私のC#/ XAML Metroアプリには、長時間実行プロセスを開始するボタンがあります。したがって、推奨されるように、UIスレッドがブロックされないようにするためにasync / awaitを使用しています。 private async void Button_Click_1(object sender, RoutedEventArgs e) { await GetResults(); } private async Task GetResults() { // Do lot of complex stuff that takes a long time // (e.g. contact some web services) ... } 場合によっては、GetResults内で発生する処理が続行する前に、追加のユーザー入力が必要になります。簡単にするために、ユーザーが「続行」ボタンをクリックする必要があるとしましょう。 私の質問は、別のボタンのクリックなどのイベントを待機するようにGetResultsの実行を一時停止するにはどうすればよいですか? ここに私が探しているものを達成するための醜い方法があります:続行するためのイベントハンドラー」ボタンはフラグを設定します... private bool _continue = false; private void …

6
.NET Framework 4.5ディレクトリはどこにありますか?
Windows 8、Visual Studio 2012をインストールしましたが、にv4.5ディレクトリがありません%WINDIR%\Microsoft.NET\Framework。 何か間違ったことをしましたか、それとも.NET 4.5は他のものと異なりますか? ツールをインストールしていないことが原因である場合、ダウンロードするさまざまなツールのセットはありますか?私の知る限り、.NET 4.5アプリは問題なく構築できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.