คำถามติดแท็ก asynchronous

การเขียนโปรแกรมแบบอะซิงโครนัสเป็นกลยุทธ์สำหรับการชะลอการดำเนินการที่มีความหน่วงแฝงสูงหรือความสำคัญต่ำซึ่งมักจะพยายามปรับปรุงประสิทธิภาพการตอบสนองและ / หรือความสามารถในการรวมของซอฟต์แวร์ กลยุทธ์ดังกล่าวมักจะใช้การรวมกันของการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์และการเรียกกลับและเลือกใช้การทำงานพร้อมกันผ่าน coroutines และ / หรือเธรด

8
เรียกใช้ฟังก์ชัน Javascript แบบอะซิงโครนัสแบบซิงโครนัส
ครั้งแรกนี่เป็นกรณีที่เฉพาะเจาะจงมากในการทำผิดวิธีในการติดตั้งการโทรแบบอะซิงโครนัสใหม่ให้เป็นโค๊ดฐานซิงโครนัสมากซึ่งมีหลายพันบรรทัดในเวลาและเวลาไม่สามารถทำการเปลี่ยนแปลงได้ ถูกต้องแล้ว " มันทำให้ทุกชีวิตของฉันเจ็บปวด แต่ความจริงและอุดมคติมักไม่เข้าข่าย ฉันรู้ว่ามันแย่ ตกลงฉันจะทำมันออกไปได้อย่างไร: function doSomething() { var data; function callBack(d) { data = d; } myAsynchronousCall(param1, callBack); // block here and return data when the callback is finished return data; } ตัวอย่าง (หรือขาดดังกล่าว) ใช้ไลบรารีและ / หรือคอมไพเลอร์ซึ่งทั้งสองอย่างนี้ไม่สามารถใช้งานได้สำหรับโซลูชันนี้ ฉันต้องการตัวอย่างที่เป็นรูปธรรมเกี่ยวกับวิธีทำให้บล็อก (เช่นไม่ออกจากฟังก์ชั่น doSomething จนกระทั่งมีการโทรกลับ) โดยไม่ต้องแช่แข็ง UI หากสิ่งนั้นเป็นไปได้ใน JS

16
แนะนำให้รู้จักกับ. NET Reactive Framework [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ นอกเหนือจากเอกสารประกอบของ Microsoft แล้วยังมีบทนำและบทแนะนำที่ดีเกี่ยวกับกรอบการทำงานของ Microsoft Reactive (Rx) หรือไม่? นอกจากนี้ยังมีตัวอย่างที่ดี (ที่มีรหัส) ที่ตอบสนองทำให้ง่ายขึ้นของปัญหาการเขียนโปรแกรมที่ท้าทายในการแก้ปัญหาโดยใช้เทคนิคการเข้ารหัสแบบอะซิงโครนัสทั่วไปคืออะไร?

8
เมื่อใดที่ฉันควรใช้ Async Controllers ใน ASP.NET MVC
ฉันมีข้อกังวลบางอย่างเกี่ยวกับการใช้การกระทำของ async ใน ASP.NET MVC เมื่อไหร่มันจะปรับปรุงประสิทธิภาพการทำงานของแอพพลิเคของฉันและเมื่อไม่ได้ไม่ได้ ? มันเป็นการดีที่จะใช้ async การกระทำทุกที่ใน ASP.NET MVC? เกี่ยวกับวิธีการที่รอคอย: ฉันจะใช้ async / คอยคำสำคัญเมื่อฉันต้องการสอบถามฐานข้อมูล (ผ่าน EF / NHibernate / ORM อื่น ๆ ) กี่ครั้งที่ฉันสามารถใช้คำหลักที่รอคอยที่จะสอบถามฐานข้อมูลแบบไม่พร้อมกันในหนึ่งวิธีการดำเนินการเดียว?

18
วิธีการร้องขอ HTTP แบบอะซิงโครนัสใน PHP
มีวิธีใน PHP ในการโทร HTTP แบบอะซิงโครนัสหรือไม่? ฉันไม่สนใจเกี่ยวกับการตอบสนองฉันแค่อยากทำอะไรบางอย่างfile_get_contents()แต่อย่ารอให้คำขอเสร็จสิ้นก่อนที่จะประมวลผลโค้ดที่เหลือ นี่จะเป็นประโยชน์อย่างยิ่งสำหรับการตั้งค่า "เหตุการณ์" ของการเรียงลำดับในแอปพลิเคชันของฉันหรือเรียกกระบวนการที่ยาว ความคิดใด ๆ
209 php  http  asynchronous 

16
วิธีใช้ JUnit เพื่อทดสอบกระบวนการแบบอะซิงโครนัส
คุณจะทดสอบวิธีที่ใช้กระบวนการแบบอะซิงโครนัสกับ JUnit ได้อย่างไร ฉันไม่ทราบวิธีที่จะทำให้การทดสอบของฉันรอให้กระบวนการสิ้นสุด (ไม่ใช่การทดสอบหน่วยอย่างแน่นอนมันเป็นเหมือนการทดสอบการรวมเข้าด้วยกันเนื่องจากมันเกี่ยวข้องกับหลายคลาสและไม่ใช่แค่หนึ่งคลาส)

13
เชลล์แบบอะซิงโครนัส exec ใน PHP
ฉันมีสคริปต์ PHP ที่ต้องการเรียกใช้เชลล์สคริปต์ แต่ไม่สนใจเกี่ยวกับผลลัพธ์ เชลล์สคริปต์ทำการโทร SOAP จำนวนหนึ่งและทำงานช้าดังนั้นฉันไม่ต้องการชะลอคำขอ PHP ในขณะที่รอการตอบกลับ ในความเป็นจริงคำขอ PHP ควรจะสามารถออกได้โดยไม่ต้องยุติกระบวนการเชลล์ เราได้ตรวจสอบต่างๆexec(), shell_exec(), pcntl_fork()ฟังก์ชั่น ฯลฯ แต่ไม่มีของพวกเขาดูเหมือนจะนำเสนอสิ่งที่ฉันต้องการ (หรือถ้าพวกเขาทำมันไม่ชัดเจนสำหรับฉัน) คำแนะนำใด ๆ
199 php  asynchronous  shell 

6
เบราว์เซอร์ใดที่รองรับ <script async =“ async” />
เมื่อวันที่ 1 ธันวาคม 2009 Google ประกาศการสนับสนุนสำหรับตรงกันติดตามของ Google Analytics การติดตามแบบอะซิงโครนัสทำได้โดยใช้คำสั่ง async สำหรับ&lt;script&gt;แท็ก เบราว์เซอร์ใดที่สนับสนุนคำสั่ง async ( &lt;script async="async" /&gt;) และตั้งแต่เวอร์ชันใด

4
async C # 5 CTP: ทำไม“ สถานะ” ภายในถูกตั้งค่าเป็น 0 ในรหัสที่สร้างขึ้นก่อนการโทร EndAwait
เมื่อวานนี้ฉันได้พูดคุยเกี่ยวกับคุณลักษณะใหม่ของ "async" C โดยเฉพาะอย่างยิ่งการตรวจสอบสิ่งที่สร้างรหัสดูเหมือนและthe GetAwaiter()/ BeginAwait()/ EndAwait()โทร เราดูรายละเอียดที่เครื่องสถานะที่สร้างโดยคอมไพเลอร์ C # และมีสองด้านที่เราไม่เข้าใจ: เหตุใดคลาสที่สร้างขึ้นจึงมีDispose()เมธอดและ$__disposingตัวแปรซึ่งไม่เคยปรากฏที่จะใช้ (และคลาสไม่ได้นำไปใช้IDisposable) สาเหตุที่stateตัวแปรภายในถูกตั้งค่าเป็น 0 ก่อนการเรียกใด ๆEndAwait()เมื่อโดยปกติ 0 ปรากฏว่าหมายถึง "นี่คือจุดเริ่มต้น" ฉันสงสัยว่าจุดแรกสามารถตอบได้โดยทำสิ่งที่น่าสนใจมากขึ้นในวิธีการ async ถึงแม้ว่าหากใครมีข้อมูลเพิ่มเติมฉันก็ยินดีที่จะได้ยิน อย่างไรก็ตามคำถามนี้เกี่ยวกับประเด็นที่สองมากกว่า นี่คือตัวอย่างโค้ดที่ง่ายมาก: using System.Threading.Tasks; class Test { static async Task&lt;int&gt; Sum(Task&lt;int&gt; t1, Task&lt;int&gt; t2) { return await t1 + await t2; } } ... และนี่คือรหัสที่ได้รับการสร้างขึ้นสำหรับMoveNext()วิธีการที่ใช้เครื่องรัฐ สิ่งนี้ถูกคัดลอกโดยตรงจาก Reflector …
195 c#  asynchronous  c#-5.0 

2
ความแตกต่างระหว่างอนาคตที่สมบูรณ์ในอนาคตและ RxJava ที่สังเกตได้
ผมอยากจะทราบความแตกต่างระหว่าง CompletableFuture, และFutureObservable RxJava สิ่งที่ฉันรู้คือทั้งหมดนั้นไม่ตรงกัน แต่ Future.get() บล็อกเธรด CompletableFuture ให้วิธีการโทรกลับ RxJava Observable--- คล้ายCompletableFutureกับผลประโยชน์อื่น ๆ (ไม่แน่ใจ) ตัวอย่างเช่น: หากลูกค้าต้องการใช้บริการหลายสายและเมื่อเราใช้Futures(Java) Future.get()จะถูกดำเนินการตามลำดับ ... ต้องการทราบว่า RxJava ดีกว่าได้อย่างไร และเอกสารประกอบhttp://reactivex.io/intro.htmlกล่าว เป็นการยากที่จะใช้ฟิวเจอร์สในการเขียนขั้นตอนการดำเนินการแบบอะซิงโครนัสตามเงื่อนไขอย่างเหมาะสมที่สุด (หรือเป็นไปไม่ได้เนื่องจากเวลาแฝงของแต่ละคำขอแตกต่างกันที่รันไทม์) สามารถทำสิ่งนี้ได้ แต่มันจะซับซ้อนอย่างรวดเร็ว (และทำให้เกิดข้อผิดพลาดได้ง่าย) หรือบล็อกอยู่บน Future.get () ก่อนกำหนดซึ่งจะกำจัดข้อดีของการประมวลผลแบบอะซิงโครนัส สนใจจริงๆที่จะรู้วิธีRxJavaแก้ปัญหานี้ ฉันพบว่ามันยากที่จะเข้าใจจากเอกสาร

10
ความแตกต่างระหว่างการเขียนโปรแกรมแบบซิงโครนัสและแบบอะซิงโครนัสคืออะไร (ใน node.js)
ฉันอ่านnodebeginner แล้วฉันก็เจอโค้ดสองชิ้นต่อไปนี้ คนแรก: var result = database.query("SELECT * FROM hugetable"); console.log("Hello World"); คนที่สอง: database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World"); ฉันได้สิ่งที่ควรทำพวกเขาค้นหาฐานข้อมูลเพื่อดึงคำตอบของแบบสอบถาม console.log('Hello world')แล้วก็ คนแรกคือรหัสซิงโครนัสที่คาดคะเน และอันที่สองคือรหัสอะซิงโครนัส ความแตกต่างระหว่างสองชิ้นนั้นค่อนข้างคลุมเครือสำหรับฉัน ผลผลิตจะเป็นอย่างไร Googling ในการเขียนโปรแกรมแบบอะซิงโครนัสไม่ได้ช่วยฉันเช่นกัน

3
ใช้ Moq เพื่อจำลองวิธีอะซิงโครนัสสำหรับการทดสอบหน่วย
ฉันกำลังทดสอบวิธีการสำหรับบริการที่APIโทรผ่านเว็บ ใช้HttpClientงานปกติได้ดีสำหรับการทดสอบหน่วยถ้าฉันยังเรียกใช้บริการเว็บ (อยู่ในโครงการอื่นในการแก้ปัญหา) ในพื้นที่ อย่างไรก็ตามเมื่อฉันเช็คอินการเปลี่ยนแปลงของฉันเซิร์ฟเวอร์บิลด์จะไม่สามารถเข้าถึงบริการเว็บดังนั้นการทดสอบจะล้มเหลว ฉันได้คิดค้นวิธีนี้สำหรับการทดสอบหน่วยของฉันโดยการสร้างIHttpClientอินเทอร์เฟซและใช้เวอร์ชันที่ฉันใช้ในแอปพลิเคชันของฉัน สำหรับการทดสอบหน่วยฉันสร้างเวอร์ชันที่เยาะเย้ยโดยใช้วิธีการโพสต์แบบอะซิงโครนัสที่เยาะเย้ย ที่นี่ฉันมีปัญหา ฉันต้องการส่งคืนตกลงHttpStatusResultสำหรับการทดสอบนี้โดยเฉพาะ สำหรับการทดสอบอื่นที่คล้ายคลึงกันฉันจะคืนผลลัพธ์ที่ไม่ดี การทดสอบจะทำงาน แต่จะไม่เสร็จสมบูรณ์ มันค้างที่รอ ฉันยังใหม่กับการเขียนโปรแกรมแบบอะซิงโครนัสผู้ได้รับมอบหมายและขั้นต่ำและฉันค้นหา SO และ google มาระยะหนึ่งเพื่อเรียนรู้สิ่งใหม่ แต่ฉันก็ยังดูเหมือนจะไม่สามารถผ่านพ้นปัญหานี้ได้ นี่คือวิธีที่ฉันพยายามทดสอบ: public async Task&lt;bool&gt; QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here …

5
Async กำลังรอการเลือก linq
ฉันต้องการแก้ไขโปรแกรมที่มีอยู่และมันมีรหัสต่อไปนี้: var inputs = events.Select(async ev =&gt; await ProcessEventAsync(ev)) .Select(t =&gt; t.Result) .Where(i =&gt; i != null) .ToList(); แต่สิ่งนี้ดูแปลกสำหรับฉันมากก่อนอื่นให้ใช้asyncและawaitเลือก ตามคำตอบของสตีเฟ่นเคลียร์ฉันควรจะทิ้งมันไว้ จากนั้นวินาทีSelectที่เลือกผลลัพธ์ นี่ไม่ได้หมายความว่างานนั้นไม่ได้เป็นแบบอะซิงก์เลยและดำเนินการแบบซิงโครนัส (ไม่ต้องใช้ความพยายามมากนัก) หรืองานนั้นจะทำงานแบบอะซิงโครนัส ฉันควรเขียนโค้ดด้านบนเหมือนดังต่อไปนี้ตามคำตอบอื่นโดย Stephen Cleary : var tasks = await Task.WhenAll(events.Select(ev =&gt; ProcessEventAsync(ev))); var inputs = tasks.Where(result =&gt; result != null).ToList(); และมันเหมือนกันหมดอย่างนี้หรือไม่? var inputs = (await Task.WhenAll(events.Select(ev =&gt; …
180 c#  linq  asynchronous 

12
วิธีการแบบอะซิงโครนัสเรียกใช้ใน Python หรือไม่
ฉันสงสัยว่ามีห้องสมุดใดสำหรับการเรียกใช้วิธีการแบบอะซิงโครนัสในPythonหรือไม่ มันจะดีมากถ้าคุณทำอะไรซักอย่าง @async def longComputation(): &lt;code&gt; token = longComputation() token.registerCallback(callback_function) # alternative, polling while not token.finished(): doSomethingElse() if token.finished(): result = token.result() หรือเพื่อเรียกรูทีนที่ไม่ใช่ async แบบอะซิงโครนัส def longComputation() &lt;code&gt; token = asynccall(longComputation()) มันจะเป็นการดีหากมีกลยุทธ์ที่ละเอียดอ่อนกว่าในภาษาหลัก มีการพิจารณาเรื่องนี้หรือไม่?

13
ความแตกต่างระหว่างวิธีการเกิดพร้อมกันขนานและวิธีการไม่ตรงกันคืออะไร?
การทำงานพร้อมกันคือการทำงานสองอย่างพร้อมกันบนเธรดแยกกัน อย่างไรก็ตามวิธีการแบบอะซิงโครนัสทำงานแบบขนาน แต่อยู่บน 1 เธรดเดียวกัน สิ่งนี้สำเร็จได้อย่างไร นอกจากนี้สิ่งที่เกี่ยวกับความเท่าเทียมกัน? อะไรคือความแตกต่างระหว่างแนวคิดทั้งสามนี้

4
เหตุใดจึงใช้ Task <T> แทน ValueTask <T> ใน C #
ตั้งค่าใหม่แล้วStack Overflow ที่ติดตั้งไว้แล้ว : คลิกที่นี่ ValueTask &lt;T&gt;? ในฐานะของวิธีการซิงค์ C # 7.0 สามารถส่งคืน ValueTask &lt;T&gt; คำอธิบายบอกว่าควรใช้เมื่อเรามีผลแคชหรือจำลอง async ผ่านรหัสซิงโครนัส อย่างไรก็ตามฉันยังคงไม่เข้าใจปัญหาที่เกิดขึ้นกับการใช้ ValueTask เสมอหรือในความเป็นจริงว่าทำไม async / await ไม่ได้ถูกสร้างขึ้นด้วยประเภทค่าตั้งแต่เริ่มต้น ValueTask จะล้มเหลวในการทำงานเมื่อใด
168 c#  asynchronous 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.