小编Leo*_* Vo的帖子

获取应用程序文件夹路径的最佳方法

我看到有一些方法可以获取应用程序文件夹路径:

  1. Application.StartupPath
  2. System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location)
  3. AppDomain.CurrentDomain.BaseDirectory
  4. System.IO.Directory.GetCurrentDirectory()
  5. Environment.CurrentDirectory
  6. System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
  7. System.IO.Path.GetDirectory(Application.ExecutablePath)

取决于具体情况,最好的方法是什么?

.net c#

470
推荐指数
6
解决办法
55万
查看次数

Application.Exit()不起作用

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Exit();
            Application.Run(new Form1());
        }
Run Code Online (Sandbox Code Playgroud)

为什么在调用Application.Exit()之后,应用程序不会立即退出?在这一行之后,Form1仍然显示.如何立即退出申请.谢谢.

*注意:*这只是一个例子.我在显示表单之前处理了一些函数.在函数中,我有一个命令代码来调用Application.Exit(),但我想知道为什么应用程序不会立即退出.

我正在使用.NET Framework 4.0

.net c#

28
推荐指数
5
解决办法
4万
查看次数

如何设置匿名对象的属性值?

这是我的代码示例:

var output = new
{
    NetSessionId = string.Empty
};

foreach (var property in output.GetType().GetProperties())
{
    property.SetValue(output, "Test", null);
}
Run Code Online (Sandbox Code Playgroud)

它发生异常:"找不到属性集方法".我想知道如何创建一个具有可设置属性的匿名类型.

谢谢.

.net c# anonymous-types

25
推荐指数
3
解决办法
3万
查看次数

查找并激活应用程序窗口

假设notepad.exe正在打开,并且它的窗口处于非活动状态.我将编写一个应用程序来激活它.怎么做?

更新:窗口标题未定义.所以,我不喜欢使用基于窗口标题的FindWindow.

我的应用程序是Winform C#2.0.谢谢.

.net c#

17
推荐指数
1
解决办法
2万
查看次数

如何在C#中对List进行排序

我有一节课:

public class MyObject
{
public string Name;
public int Age;
}
Run Code Online (Sandbox Code Playgroud)

我有一个Myobject对象列表:

Name Age
ABC 12
BBC 14
ABC 11
Run Code Online (Sandbox Code Playgroud)

如何使用条件对此列表进行排序:首先排序名称,然后排序年龄.使用此列表,排序后的结果:

Name Age
ABC 11
ABC 12
BBC 14
Run Code Online (Sandbox Code Playgroud)

.net c#

13
推荐指数
2
解决办法
975
查看次数

如何启动已停止的线程

我创建一个新线程并从主线程启动它.

m_MyThread = new Thread(HandleMyThread);
m_MyThread.IsBackground = true;
m_MyThread.Start();

private void HandleMyThread()
{
    while (true)
    {
        Thread.Sleep(5000);
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

5秒后,此线程将完成并且其ThreadState已停止.我想在用户点击按钮时再次启动它,但我得到一个ThreadStateException (Thread is running or terminated; it cannot restart):

private void button1_Click(object sender, EventArgs e)
{
    m_MyThread.Start(); // ->raise exception
}
Run Code Online (Sandbox Code Playgroud)

请帮我如何重新启动已停止的线程.谢谢.

.net c# multithreading winforms

9
推荐指数
2
解决办法
2万
查看次数

如何在用户更改系统文化时接收事件

当我的应用程序使用指定的文化运行时.不要关闭应用程序,用户更改系统的文化,例如:从"."更改数字小数分隔符.至 ",".如何我的应用程序可以捕获此事件.谢谢.

注意: C#2.0,Windows窗体.

.net c# cultureinfo

8
推荐指数
1
解决办法
5819
查看次数

.NET游戏服务器

我在这里有关于.Net框架技术和游戏服务器的问题.假设我有一些游戏机作为客户端,我想将这些客户机连接到游戏服务器,你们认为如果我使用.NET框架开发服务器应用程序是好的吗?

客户机也是用dotnet技术开发的.如果我将我的服务器扩展到几个同时运行的服务器,如果我在我的游戏服务器上使用.Net框架,那该怎么办?我应该使用什么.Net技术,.Net Remoting,XML Web服务,COM +,MSMQ或任何建议?

这里一个更重要的因素是表现明智.我希望客户端和服务器之间的通信能够快速有效地进行通信而不会长时间滞后.

我想扩展到几个服务器的目的是因为如果其中一个服务器关闭或关闭进行服务,我仍然可以让我的应用程序运行而不会中断任务关键和实时的游戏过程.

以前有什么样的灵魂做过这样的设置吗?如果是的话,你们对此感觉如何?在游戏服务器中使用.Net的最佳,好,差或最差?

我真诚地感谢.Net和游戏开发专家在这里给我一些反馈.

谢谢,

.net architecture

7
推荐指数
1
解决办法
1363
查看次数

在控件上使用DoubleBuffer时的优点和缺点

默认情况下,Windows控件没有DoubleBuffer.当我使用它时,我可以减少闪烁.为什么在Windows控件中默认不使用它.

在控制中使用DoubleBuffer时,任何人都可以分辨出优点和缺点.

谢谢.

.net c#

7
推荐指数
1
解决办法
2845
查看次数

请解释.NET 4.0中的Func委托

在.NET 4.0中,有一个内置的委托方法:

public delegate TResult Func<in T, out TResult>(T arg);
Run Code Online (Sandbox Code Playgroud)

它用于LINQ extesion方法,例如:

IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
Run Code Online (Sandbox Code Playgroud)

我不清楚Func委托,为什么以下lambda表达式匹配它:

// p is a XElement object
p=>p.Element("firstname").Value.StartsWith("Q")
Run Code Online (Sandbox Code Playgroud)

.net c# lambda delegates

7
推荐指数
2
解决办法
776
查看次数