Tag: C#的

正确的方法来停止TcpListener

我目前使用TcpListener来解决传入的连接,每个连接都有一个处理通信的线程,然后closures那个单一的连接。 代码如下所示: TcpListener listener = new TcpListener(IPAddress.Any, Port); System.Console.WriteLine("Server Initialized, listening for incoming connections"); listener.Start(); while (listen) { // Step 0: Client connection TcpClient client = listener.AcceptTcpClient(); Thread clientThread = new Thread(new ParameterizedThreadStart(HandleConnection)); clientThread.Start(client.GetStream()); client.Close(); } listenvariables是一个布尔types,它是类中的一个字段。 现在,当程序closures时,我希望它停止监听客户端。 将listen设置为false将防止它接受更多的连接,但是由于AcceptTcpClient是一个阻塞调用,它将至less取下一个客户端,然后退出。 有什么办法可以迫使它只是突然停止,那么在那里? 调用listener.Stop()时有什么效果,而另一个阻塞调用正在运行?

如何授予我的应用程序为所有用户创build的文件的完整权限?

我开发的工具需要授予对其创build的文件的访问权限“完全控制”。 它需要阅读,修改和删除所有的Windows帐户,甚至可能的未来帐户。 这能实现吗? 我知道我可以尝试这个SPECIFIC_USER: FileSystemAccessRule rule = new FileSystemAccessRule(SPECIFIC_USER, FileSystemRights.FullControl, AccessControlType.Allow); FileSecurity fSecurity = File.GetAccessControl(filePath); fSecurity.SetAccessRule(rule); File.SetAccessControl(filePath, fSecurity); 但是,如何将其授予所有用户? 甚至可能的未来账户? 如果后半部分是不可能的,怎么去解决第一个要求? 谢谢。 编辑: 这是为我工作的代码。 从回答者的链接采取。 private bool GrantAccess(string fullPath) { DirectoryInfo dInfo = new DirectoryInfo(fullPath); DirectorySecurity dSecurity = dInfo.GetAccessControl(); dSecurity.AddAccessRule(new FileSystemAccessRule("everyone", FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); dInfo.SetAccessControl(dSecurity); return true; } 请注意PropagationFlags.NoPropagateInherit是必需的(在链接中提到最后)。 它确实授予甚至未来的帐户的特权。

是否有可能遍历variablesmacros中的参数?

我想知道是否有可能迭代传递给在C99 variadicmacros或使用任何GCC扩展的参数? 例如,是否有可能编写一个通用的macros,它采用一个结构和它的字段作为parameter passing,并打印结构中每个字段的偏移量? 像这样的东西: 结构{ int a; int b; int c; }; / * PRN_STRUCT_OFFSETS将打印每个字段的偏移量 在作为第一个论点的结构之内。 * / int main(int argc,char * argv []) { PRN_STRUCT_OFFSETS(struct a,a,b,c); 返回0; }

我怎样才能测量两个string之间的相似性?

给定两个stringtext1和text2 public SOMEUSABLERETURNTYPE Compare(string text1, string text2) { // DO SOMETHING HERE TO COMPARE } 例子: 第一个string:StackOverflow 第二个string:StaqOverflow 回报率:相似度为91% 回报可以在%或类似的东西。 第一个string:简单的文本testing 第二个string:复杂的文本testing 返回:这些值可以被认为是相等的 有任何想法吗? 做这个的最好方式是什么?

C#:如何将对象的列表转换为该对象的单个属性的列表?

说我有: IList<Person> people = new List<Person>(); 而person对象具有诸如FirstName,LastName和Gender之类的属性。 如何将其转换为Person对象的属性列表。 例如,到一个名字列表。 IList<string> firstNames = ???

行动<T>与委托事件

我已经看到开发人员使用下面的代码相当不错。 这些之间的确切区别是什么,哪些符合标准? 它们是否相同, Action和Func<T>也是一个委托: public event Action<EmployeeEventAgs> OnLeave; public void Leave() { OnLeave(new EmployeeEventAgs(this.ID)); } VS public delegate void GoOnLeave(EmployeeEventAgs e); public event GoOnLeave OnLeave; public void Leave() { OnLeave(new EmployeeEventAgs(this.ID)); }

我怎样才能得到一个静态方法中的会话variables的值?

我正在使用jQuery的asp.net pagemethods ….如何获得静态方法在C#中的会话variables的值? protected void Page_Load(object sender, EventArgs e) { Session["UserName"] = "Pandiya"; } [WebMethod] public static string GetName() { string s = Session["UserName"].ToString(); return s; } 当我编译这个时,我得到的错误: 非静态字段,方法或属性“System.Web.UI.Page.Session.get'`需要对象引用 任何build议或任何其他select?

C#使用Activator.CreateInstance

我昨天问了一个关于使用reflection或策略模式dynamic调用方法的问题。 然而,从那以后,我决定将这些方法改为实现一个通用接口的各个类。 原因在于,每个class级虽然具有一些相似之处,但也执行了该class级特有的某些方法。 我一直在使用这样的策略: switch (method) { case "Pivot": return new Pivot(originalData); case "GroupBy": return new GroupBy(originalData); case "Standard deviation": return new StandardDeviation(originalData); case "% phospho PRAS Protein": return new PhosphoPRASPercentage(originalData); case "AveragePPPperTreatment": return new AveragePPPperTreatment(originalData); case "AvgPPPNControl": return new AvgPPPNControl(originalData); case "PercentageInhibition": return new PercentageInhibition(originalData); default: throw new Exception("ERROR: Method " + method + […]

你如何检查目录是否存在于Windows上的C?

题 在Windows C应用程序中,我想validation传递给函数的参数,以确保指定的path存在。* 你如何检查目录是否存在于Windows上的C? *我知道你可以进入竞争状态,在你检查存在的时间和你使用的path不再存在的时间之间,但我可以处理。 额外的背景 明确知道某个目录是否存在可能会在权限进入时变得棘手。 有可能在尝试确定目录是否存在时,该进程没有访问目录或父目录的权限。 这对我的需求是可以的 。 如果目录不存在或者我无法访问它们,那么在我的应用程序中都将被视为无效的path故障,所以我不需要区分。 (虚拟)奖励积分,如果您的解决scheme提供了这种区别。 C语言,C运行时库或Win32 API的任何解决scheme都很好,但理想情况下,我想坚持通常加载的库(例如kernel32,user32等),并避免涉及加载非标准库的解决scheme(如Shlwapi.dll中的PathFileExists )。 如果您的解决scheme是跨平台的话,(虚拟)奖励点也是如此。 有关 我们如何检查一个文件是否存在或不使用Win32程序?

如何debugging到从TeamCity部署的nuget包?

我已经把我的团队使用的一个库放入了一个从TeamCity部署到networking文件夹的Nuget包中。 我不能debugging到这个代码,但! SymbolSource是我已经阅读的一个解决scheme,但是我更愿意find一些方法直接从Teamcity访问.pdb /源文件。 有谁知道如何做到这一点? 编辑。 当我在Nuget Pack构build步骤中选中'Include Symbols and Source'时,除了networking文件夹中的.nupkg文件外,TeamCity还创build了一个.Symbol.nupkg。 .Symbol.nupkg包含src和.pdb文件。 编辑。 我在TeamCity上取消选中'Include Symbols and Source' ,并将以下内容添加到我的nuspec文件中: <files> <file src="..\MyLibrary\bin\release\MyLibrary.dll" target="lib\net40" /> <file src="..\MyLibrary\bin\release\MyLibrary.pdb" target="lib\net40" /> <file src="..\MyLibrary\*.cs" target="src" /> <file src="..\MyLibrary\**\*.cs" target="src" /> </files> 这添加了我的库的dll,pdb和源文件在nuget包中,并没有生成一个.Symbols文件,我认为这只是符号服务器需要的。