คำถามติดแท็ก .net-4.5

เวอร์ชัน 4.5 ของ Microsoft .NET Framework ใช้สำหรับคำถามที่เกี่ยวข้องกับ. 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 และรอคำสำคัญไม่จำเป็นหรือไม่ 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 คุณควรประกาศและสร้างอินสแตนซ์ในข้อความสั่งการใช้ คำตอบนี้ใช้รูปแบบนี้: 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 …

3
คุณต้องวาง Task.Run ลงในเมธอดเพื่อทำให้เป็น async หรือไม่?
ฉันพยายามที่จะเข้าใจ async ที่รอในรูปแบบที่ง่ายที่สุด ฉันต้องการสร้างวิธีง่าย ๆ ที่เพิ่มตัวเลขสองตัวเพื่อประโยชน์ของตัวอย่างนี้ได้รับไม่มีเวลาในการประมวลผลเลยมันเป็นเพียงเรื่องของการสร้างตัวอย่างที่นี่ ตัวอย่างที่ 1 private async Task DoWork1Async() { int result = 1 + 2; } ตัวอย่างที่ 2 private async Task DoWork2Async() { Task.Run( () => { int result = 1 + 2; }); } หากฉันรอDoWork1Async()รหัสจะทำงานพร้อมกันหรือไม่ตรงกัน? ฉันจำเป็นต้องรวมโค้ดการซิงค์ไว้ด้วยTask.Runเพื่อให้วิธีนี้ไม่สามารถรอได้และแบบอะซิงโครนัสเพื่อไม่ให้บล็อกเธรด UI หรือไม่ ฉันพยายามที่จะคิดออกว่าวิธีการของฉันเป็นTaskหรือTask<T>ฉันจะต้องห่อรหัสด้วยTask.Runเพื่อให้มันไม่ตรงกัน คำถามโง่ฉันแน่ใจ แต่ผมดูตัวอย่างในสุทธิที่ผู้คนกำลังรอรหัสที่มีอะไร async ภายในและไม่ได้อยู่ในห่อหรือTask.RunStartNew

7
วัตถุประสงค์ของ“ การรอคืนสินค้า” ใน C # คืออะไร
มีใด ๆสถานการณ์ที่เขียนวิธีการเช่นนี้ 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 …
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 ใหม่อีกครั้งอย่างไร
ฉันย้ายข้อมูลโซลูชันที่กำหนดเป้าหมายเป็น. NET 4.0 ใน VS2010 ไปเป็น VS2012 และตอนนี้ฉันต้องการกำหนดเป้าหมายใหม่เป็น. Net 4.5 สิ่งที่ฉันไม่แน่ใจเกี่ยวกับแพ็คเกจ NuGet คืออะไร ตัวอย่างเช่น EF5 ซึ่งฉันอัปเดตจาก EF4 ใน VS2010 กลายเป็น 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> ดังนั้นคำถามของฉันคือ: แนวปฏิบัติที่ดีที่สุดในการกำหนดเป้าหมายแพคเกจ NuGet …

2
เหตุใดการค้นหาตัวเริ่มต้นของประเภทจึงทำให้ NullReferenceException
นี่ทำให้ฉันนิ่งงัน ฉันพยายามเพิ่มประสิทธิภาพการทดสอบบางอย่างสำหรับ Noda Time ซึ่งเรามีการตรวจสอบประเภทเริ่มต้น ฉันคิดว่าฉันพบว่าเป็นชนิดที่มี initializer ชนิด (คอนสตรัคคงที่หรือตัวแปรคงที่กับ initializers) AppDomainก่อนที่จะโหลดทุกอย่างเข้าใหม่ สำหรับความประหลาดใจของฉันการทดสอบเล็ก ๆ น้อย ๆ ของการขว้างปานี้NullReferenceException- แม้ว่าจะไม่มีค่า null ในรหัสของฉัน มันจะโยนข้อยกเว้นเมื่อรวบรวมโดยไม่มีข้อมูลการแก้ปัญหา นี่เป็นโปรแกรมสั้น ๆ แต่สมบูรณ์เพื่อแสดงให้เห็นถึงปัญหา: 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 …

1
Catch-22 ป้องกันบริการ TCP WCF แบบสตรีมที่ปลอดภัยโดย WIF ทำลายคริสมาสต์ของฉันสุขภาพจิต
ฉันมีความต้องการไปสู่การรักษาความปลอดภัยการสตรีม WCF net.tcp ปลายทางบริการโดยใช้ WIF ควรตรวจสอบการโทรเข้ากับเซิร์ฟเวอร์โทเค็นของเรา บริการถูกสตรีมเนื่องจากถูกออกแบบมาเพื่อถ่ายโอนข้อมูลจำนวนมากและสิ่งต่าง ๆ ดูเหมือนว่าจะเป็นไปไม่ได้ และถ้าฉันไม่สามารถจับได้คริสต์มาสของฉันจะถูกทำลายและฉันจะดื่มจนตายในรางน้ำในขณะที่นักช้อปผู้ร่าเริงเดินผ่านร่างกายที่เย็นตัวลงอย่างช้าๆของฉัน Totes จริงจังพวกคุณ ทำไมเป็นไปไม่ได้ นี่คือ 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(); ฉันว่า "ไม่มีปัญหา" หรือเปล่า? problemo ในความเป็นจริงNullReferenceExceptionปัญหาสไตล์ "Bro," ฉันถาม Framework, "คุณตรวจสอบเป็นโมฆะหรือไม่" Framework ทำงานเงียบฉันเลยถอดออกและพบว่า ((IChannel)(object)tChannel). GetProperty<ChannelParameterCollection>(). …
181 c#  wcf  .net-4.5  wif  nettcpbinding 

5
กำหนดเป้าหมาย. NET Framework 4.5 ผ่าน Visual Studio 2010
วันนี้ฉันติดตั้ง. NET Framework 4.5 บนเครื่องของฉันโดยคาดว่าจะสามารถใช้งานได้จาก Visual Studio 2010 เนื่องจากเป็นเพียงการอัปเดตเล็กน้อยที่ไม่น่าจะก่อให้เกิดปัญหาสำหรับ Visual Studio 2010 น่าเสียดายที่ฉันไม่ได้ลบ 4.0 บางอย่างออกด้วยตนเอง และการเพิ่มแอสเซมบลี 4.5 ที่เกี่ยวข้องส่งผลให้แอสเซมบลี 4.0 ดั้งเดิมยังคงถูกอ้างอิงในโปรเจ็กต์ เป็นไปได้หรือไม่ที่จะกำหนดเป้าหมายเวอร์ชัน 4.5 จาก Visual Studio 2010 และถ้าใช่ได้อย่างไร ฉันอยากใช้ริบบิ้นจริงๆ ...

9
ตั้งค่าการหมดเวลาฐานข้อมูลใน Entity Framework
คำสั่งของฉันหมดเวลาดังนั้นฉันต้องเปลี่ยนค่าการหมดเวลาคำสั่งเริ่มต้น ฉันได้พบแต่ก็myDb.Database.Connection.ConnectionTimeoutreadonly ฉันจะตั้งค่าการหมดเวลาของคำสั่งในEntity Framework 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"); …

4
Async / await vs BackgroundWorker
ในไม่กี่วันที่ผ่านมาฉันได้ทดสอบคุณสมบัติใหม่ของ. net 4.5 และ c # 5 ฉันชอบคุณสมบัติใหม่ของ async / await ก่อนหน้านี้ฉันใช้BackgroundWorkerเพื่อจัดการกระบวนการที่ยาวนานขึ้นในพื้นหลังด้วย UI ที่ตอบสนอง คำถามของฉันคือ: หลังจากมีคุณสมบัติใหม่ที่ดีเหล่านี้ฉันควรใช้ async / คอยและเมื่อเป็นBackgroundWorker ? สถานการณ์ทั่วไปสำหรับทั้งคู่คืออะไร

8
เป็นไปได้ไหมที่จะรอเหตุการณ์แทนที่จะเป็นวิธีการอื่นแบบ async?
ในแอปรถไฟใต้ดิน C # / XAML ของฉันมีปุ่มที่เริ่มกระบวนการทำงานที่ยาวนาน ดังนั้นตามที่แนะนำฉันใช้ async / รอคอยเพื่อให้แน่ใจว่าเธรด UI ไม่ถูกบล็อก: 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 จะต้องป้อนข้อมูลผู้ใช้เพิ่มเติมก่อนจึงจะสามารถดำเนินการต่อได้ …

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.