【c# – Web API下载锁定文件】教程文章相关的互联网学习教程文章

我们在C#中获取属性时是否需要锁定?

在C#中,获取非易失性属性时是否需要锁定?我知道在设置属性时我们需要锁定.怎么样? 现在3.0提供自动属性,它本身是线程安全吗?解决方法:不,automatic properties不是线程安全的.它们只不过是语法糖;编译器会自动生成私有支持字段,就像您手动编写它们一样. 但是,除非您的应用程序从多个线程访问属性,否则没有理由担心这一点.如果你的应用程序是多线程的,很难从你的问题中得知.

关于C#中的锁定对象【代码】

请考虑以下代码:static void AddItem() {lock (_list) _list.Add ("Item " + _list.Count); //Lock 1string[] items;lock (_list) items = _list.ToArray(); //Lock 2foreach (string s in items) Console.WriteLine (s); }如果线程A获得锁定2,并且线程B尝试获得锁定1,那么B是否会获得锁定?考虑两个锁使用相同的锁定对象.解决方法:不,线程B需要等到线程A释放锁.这就是它是同一个锁对象,毕竟 – 有一个锁.获取或释放锁的地方无关紧...

c# – 创建文件而不打开/锁定它?

有没有人知道一种方法(相当简单)创建一个文件而不实际打开/锁定它?在File类中,文件创建方法始终返回FileStream.我想要做的是创建一个文件,重命名它(使用File.Move),然后使用它. 现在我必须: >创建它>关闭>重命名>重新开放使用解决方法:也许你可以尝试使用File.WriteAllText Method (String, String)文件名和空字符串.Creates a new file, writes thespecified string to the file, and thencloses the file. If the target filea...

c# – 使用对象以外的东西锁定线程【代码】

当使用锁时,你锁定的东西必须是一个对象.例如,这是合法的static DateTime NextCleanup = DateTime.Now;const TimeSpan CleanupInterval = new TimeSpan(1, 0, 0);private static void DoCleanup(){lock ((object)NextCleanup){if (NextCleanup < DateTime.Now){NextCleanup = DateTime.Now.Add(CleanupInterval);System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(cleanupThread));}}return;}解决...

c# – 通过使用asp net identity 2.1发送重置帐户链接来重置用户锁定【代码】

我有一个ASP MVC项目,我想在用户锁定后向用户的电子邮件发送解锁帐户锁定链接.我在我的项目中使用asp net identity 2.1.我可能做的是使用asp身份锁定帐户30分钟.在此时间之后,帐户将被解锁.我试图向包含重置链接的用户发送电子邮件.该链接调用具有以下代码的方法.[AllowAnonymous] public async Task<ActionResult> UnlockAccount(string userId) {await UserManager.ResetAccessFailedCountAsync(userId);return RedirectToAction...

c# – 如何多线程“跨层”具有相关ID的单例而不锁定?【代码】

因此,我们使用具有相关ID的公共状态上下文单例进行集中式日志记录.目的是在整个过程中跟踪id并关联不同的层. 状态上下文由多个dll和多个用户访问. 多线程发挥作用时遇到困难: >进程1已被用户1触发>相关ID设置为{1}> DLL A访问状态上下文并获取相关ID {1}>在流程1完成之前,流程2已由用户2解雇>关联ID设置为{2}> DLL B来自第一个进程访问状态上下文,其相关标识为{2}时应为{1} 我们如何解决这个问题? 我们认为锁定不是我们的解决方案...

c# – WebClient.DownloadFile在计算机锁定时挂起【代码】

我有一个控制台应用程序,其中包括一个(新的WebClient()).DownloadFile(源,目标)(为简洁起见缩短). 我正在运行在Windows 2003服务器上,通过rdp. 当服务器被锁定(它在几分钟没有使用之后锁定)程序就会停止运行,它只是崩溃或任何事情,它只是不再进展.Console.WriteLine("Downloading to {0} ...", localTempFile); sw.Start(); Client.DownloadFile(url + "/" + fileName, localTempFile); sw.Stop(); Console.WriteLine("{0} | Done ...

c# – 使用反射和锁定正确地实例化分配给私有静态volatile变量的类【代码】

所以这是一个我想要改进或确认的人为例子. 我正在使用(我/我)BATIS.NET(一个轻量级的ORM /数据映射器框架),我所拥有的是一个类,它为数据库的每个表映射器提供静态引用.它工作得很好,但有很多重复,我认为可能有机会大大简化代码.该类目前看起来像这样:public sealed class MyRepository {private static string _connectionString;private volatile static TableAbcMapper _tableAbcMapper;private volatile static TableXyzMapper...

c# – 如何在TFS 2012中锁定迭代?

一旦迭代(Sprint)结束,我们需要将其锁定,以便任何人都不能再登记到该迭代中(除非他们当然会覆盖签入警告). 我怎样才能做到这一点?我看了一下Team Foundation Server SDK命名空间(Microsoft.TeamFoundation),但到目前为止还没有找到.解决方法:交互(Sprint)通常用作工作项中的迭代路径.但是从你的问题的上下文我建议你在每个迭代的源代码管理中有一个文件夹,对吧? >右键单击文件夹和“Advanced-> Security …”> WebAccess打开>删除...

c# – 在删除和添加多个项目时锁定ConcurrentDictionary?【代码】

我已经在StackOverflow上阅读了以下文章:ConcurrentBag – Add Multiple Items?和Concurrent Dictionary Correct Usage,但答案对我来说仍然不明显. 我有这种情况:我在数据库中有Leaderboard表,我会定期更新它.为了优化服务器,我缓存了结果,所以我使用ConcurrentDictionary(因为有不同类型的排行榜,例如All-time,3天,7天等……). 以下是更新排行榜的代码:var leaderboards = business.UpdateLeaderboard(LeaderboardUpdater.Lead...

c# – 一种主/从锁定系统?【代码】

我不知道我想要做的事情是否有名字.令人遗憾的是,“主/从锁定系统”是我能想到的最好的措辞. 现在我遇到的问题…… 想象一下,你有以下课程:public class Foo {public void Master(){}public void Slave1(){}public void Slave2(){} }我想要的是从属方法(Slave1,Slave2)可以在多线程场景中并行运行,但是当调用master(Master)方法时,Slaves方法应该在执行时被阻止执行,另外所有当前正在运行进入主方法后,从属方法应运行至完成. 像这...

c# – 锁定winforms控件【代码】

我需要确保,一旦执行命中方法,此方法接收的控件不会被另一个线程更改.基本上,我想到这样的事情:private void doSomeWork(Control control) {lock (control) {// do some stuff with the control...} }这是一个坏主意吗? 编辑: 实际上,我正在尝试做的是确保在执行某些控件的方法时(其中,将通过反射执行),控件不会被另一个线程处理.解决方法:在一个性能良好的应用程序中,Windows窗体控件已经仅限于一个线程.如果任何线程尝试访问在...

c# – 在两种不同的场景中锁定性能【代码】

我有一个包含2个内联列表的类,其中包含超过1000个这样的元素,public class A {private List<long> aList = new List<long>();private List<long> bList = new List<long>();void MethodThatUsesAList(){//Works with aList}void MethodThatUsesBList(){//Works with bList}void MethodThatUsesBoth(){//Works with both lists} }现在,我想让这个类线程安全,我有两种不同的场景,我看到使用锁,首先是创建object _synchObject = new o...

c# – 获取图像大小而不在WPF中锁定文件【代码】

在WPF应用程序中,我在真正加载它之前得到图像大小(宽度和高度)(因为我正在加载它以减小大小……)并且我使用这个C#代码来获取它:BitmapFrame frame = BitmapFrame.Create(new Uri(path), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None); Size s = new Size(frame.PixelWidth, frame.PixelHeight);这工作正常,但它锁定了我以后想要由应用程序删除的图像文件,但不能.我知道,如果我设置BitmapCacheOption.OnLoad它解决了...

c# – 为什么需要冗余锁定对象?【代码】

出于好奇,我们在MSDN上查看了lock关键字:class Account {decimal balance;private Object thisLock = new Object();public void Withdraw(decimal amount){lock (thisLock){if (amount > balance){throw new Exception("Insufficient funds");}balance -= amount;}} }在上面的示例中,对象thisLock与lock关键字一起使用.为什么需要这个?它似乎没有任何其他目的.为什么不单独拥有lock关键字?解决方法:用于锁定的对象不是多余的.该...