我有一个场景.(Windows Forms,C#,.NET)
UserControl_Load方法,则UI在加载方法执行的持续时间内变得无响应.伪代码看起来像这样:
代码1
UserContrl1_LoadDataMethod()
{
if (textbox1.text == "MyName") // This gives exception
{
//Load data corresponding to "MyName".
//Populate a globale variable List<string> which will be binded to grid at some later stage.
}
}
Run Code Online (Sandbox Code Playgroud)
它给出的例外是
跨线程操作无效:从创建它的线程以外的线程访问控件.
为了更多地了解这一点,我做了一些谷歌搜索,并提出了一个建议,如使用下面的代码
代码2
UserContrl1_LoadDataMethod()
{
if (InvokeRequired) // Line #1
{
this.Invoke(new MethodInvoker(UserContrl1_LoadDataMethod));
return;
}
if (textbox1.text == "MyName") // Now it wont give an exception
{
//Load data correspondin to "MyName"
//Populate a globale …Run Code Online (Sandbox Code Playgroud) 我有一个C#应用程序,用户登录它,并且因为散列算法很昂贵,所以需要一些时间.如何向用户显示等待/忙碌光标(通常是沙漏),让他们知道程序正在做什么?
该项目在C#中.
关于为什么这可能会破裂的任何想法?
foreach (var p in pp)
{
ProjectFiles projectFile = (ProjectFiles)p;
projectFile.Status = Constants.ProjectFiles_ERROR;
projectFile.DateLastUpdated = DateTime.Now;
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
我读到问题的解决方法是在foreach循环之前一次性检索结果.
但我不这样做吗?"pp"是我案例中的结果集合
进入第一个严肃的WPF项目.似乎缺少很多基本控件.具体来说,我正在寻找Numeric UpDown控件.有没有我错过的带外发布?真的不想写我自己的控件.
我不想使用WindowsFormHost并在其上安装WinForm ctl.我希望它完全没有任何遗留垃圾的WPF.
谢谢
我在vb代码中有一行:
#if Not Debug
Run Code Online (Sandbox Code Playgroud)
我必须转换,我在c#中看不到它?
有没有相当于它的东西,还是有一些解决方法?
我在C#上阅读的教科书中遇到过这些,但我很难理解它们,可能是由于缺乏背景.
是否有一个很简洁的解释,说明它们是什么以及它们对那里有用的东西?
编辑以澄清:
协变界面:
interface IBibble<out T>
.
.
Run Code Online (Sandbox Code Playgroud)
逆变接口:
interface IBibble<in T>
.
.
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
List<string> result = new List<string>();
foreach (string file in Directory.EnumerateFiles(path,"*.*",
SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".wma")))
{
result.Add(file);
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,做我需要的.除了一件小事.我想找到一种更好的方法来过滤多个扩展.我想使用带有过滤器的字符串数组,例如:
string[] extensions = { "*.mp3", "*.wma", "*.mp4", "*.wav" };
Run Code Online (Sandbox Code Playgroud)
使用.NET Framework 4.0/LINQ执行此操作的最有效方法是什么?有什么建议?
我很感激任何帮助成为偶尔的程序员:-)
当我使用下面的代码行时,我得到一个包含单个文件的完整路径的字符串数组.
private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf");
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法只检索字符串中的文件名而不是整个路径.
人们可以推荐快速简单的方法来组合两个对象的哈希码.我并不太担心碰撞,因为我有一个Hash Table可以有效地处理这个问题我只想要尽可能快地生成代码的东西.
阅读SO和网络似乎有几个主要候选人:
人们会推荐什么?为什么?
我的意思是,是否有编码语言与人类风格编码?例如:
Create an object called MyVar and initialize it to 10;
Take MyVar and call MyMethod() with parameters. . .
Run Code Online (Sandbox Code Playgroud)
我知道它不是那么有用,但创建这样的语法会很有趣.