2015-05-13 45 views
1

如何将数据添加到MOngo Db同步?使用异步方法在服务器中添加用户数据是一个好主意吗?如何将数据同步添加到Mongo Db?

我有用户登记表,当上创建按钮,它应该添加用户数据蒙戈DB收集用户的点击。但在Mongo数据库网站中,他们解释了使用c#驱动程序插入数据的异步方法。但我想同步插入它。 1.用户点击创建按钮 2.将数据插入MongoDB 3.向用户显示成功消息。

这里在步骤2中,如果是异步的,它会去第3步没有完成第2步是否正确? 因此,用户在完成请求之前将获得成功消息。这不是一个好主意吗?

使用异步方法添加用户信息是否是一种很好的逻辑?

为什么C#蒙戈DB驱动程序只提供异步选择插入\找到数据?

+0

如果使用await,它会锁定主线程直到它结束。 – Brduca

+0

阅读我的问题,我认为它可以帮助:[插入使用InsertOneAsync(.NET驱动程序2.0)新文件] [1] [1]:http://stackoverflow.com/questions/29599412/insert -new-document-using-insertoneasync-net-driver-2-0 – Hana

回答

0

您可以使用关键字await轻松地将异步调用到同步调用:

var results = await collection.Find(conditions).ToListAsync(); 

为什么在C#实现驱动程序的所有操作由默认异步?因为与其他方式同步使用异步API更容易。

此外,通常使用异步API导致一般更敏感和更快的应用,因为它很容易让开发人员编写执行许多同时操作的应用程序。立即取代结果,将正在进行的异步操作存储在Task中,并在需要时解决它们。有关更多信息,请阅读MSDN上的文章“Asynchronous Programming with Async and Await”。

+0

感谢您的回答 – Gayathri

1

是否使用异步方法在服务器添加的用户数据是个好主意?

是的,因为它允许服务器在等待I/O完成时处理其他请求,即允许相同数量的线程处理更多的请求。

此外,使用.Result.Wait()强制同步是危险的,因为如果您做得不对,您将会使用run into deadlocks

这是一个好的逻辑,添加使用异步方法,用户信息?

仅异步意味着服务器可以使用该线程作为中间的其他东西;这在很大程度上是透明的,即您的代码不必太在意。出于实用目的,只需拨打await InsertOneAsync(...)或您调用的任何MongoDB驱动程序方法即可。

为什么c#mongo db驱动程序只提供异步选项来插入\查找数据?

异步是一个非常具有传染性的功能:为了有效地使用异步功能,您的所有代码必须能够处理它。

+1

感谢您的帮助 – Gayathri

相关问题