Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Το 4.6 του .NET Framework προστεθεί μια νέα τιμή τύπου απαρίθμησης, RunContinuationsAsynchronously, το TaskCompletionSource και το TaskCreationOptions απαριθμήσεις. Η τιμή αυτή επιβάλλει την ασύγχρονη εκτέλεση των εργασιών και με αυτόν τον τρόπο για να αποφευχθούν περιπτώσεις αδιεξόδου. Ωστόσο, έχει εντοπιστεί ένα ζήτημα όπου, για ορισμένους συγκεκριμένους τύπους continuations (ιδίως όταν Task.WhenAll, Task.WhenAnyή TaskExtensions.Unwrap , δημιουργήστε το continuations), η επιλογή παραβλέπεται. Επομένως, ενδέχεται να εξακολουθεί να εκτελέσετε τη σύγχρονη continuations.

Το ακόλουθο δείγμα εμφανίζει το πρόβλημα. Εάν η τιμή RunContinuationsAsynchronously λειτουργεί σωστά, το νήμα δύο αναγνωριστικά που έχουν εκτυπωθεί ποτέ θα το ίδιο, επειδή η συνέχιση πάντα προγραμματιστεί σε διαφορετικά νήματα.

using System;using System.Threading;
using System.Threading.Tasks;

class Program
{
static void Main()
{
var mres = new ManualResetEventSlim();

Console.WriteLine(Environment.CurrentManagedThreadId);

var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);

var t = Task.WhenAll(tcs.Task);

t.ContinueWith(delegate
{
Console.WriteLine(Environment.CurrentManagedThreadId);
mres.Set();
}, TaskContinuationOptions.ExecuteSynchronously);

tcs.SetResult(true);
mres.Wait();
}
}

Προτεινόμενη αντιμετώπιση

Αυτήν τη στιγμή δεν υπάρχει λύση για αυτό το θέμα. Η ομάδα του Microsoft .NET Framework λειτουργεί με μια λύση για να συμπεριλάβετε σε μια μελλοντική ενημερωμένη έκδοση.


Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×