小编gar*_*rik的帖子

如何通过依赖关系对依赖对象进行排序

我有一个集合:

List<VPair<Item, List<Item>> dependencyHierarchy;
Run Code Online (Sandbox Code Playgroud)

对中的第一项是某个对象(项),第二项是第一项依赖的相同类型对象的集合.我希望得到一个List<Item>依赖顺序,所以没有依赖于第一个元素的项目等等(没有循环依赖!).

输入:

Item4 depends on Item3 and Item5
Item3 depends on Item1
Item1 does not depend on any one
Item2 depends on Item4 
Item5 does not depend on any one 

结果:

Item1
Item5
Item3
Item4
Item2

谢谢.

解:

拓扑排序(感谢LoïcFévrier的想法)

例如在C#中,例如Java的 (感谢xcud伟大的例子)

c# sorting algorithm dependencies topological-sort

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

如何通过WebBrowser控件为WinForms处理javascript事件

从.Net阅读了WebBrowser控件 - 如何注入Javascript,是否可以从c#winforms和其他许多人调用Javascript方法.这些示例是返回函数值或警报窗口(同步调用).我必须从事件处理程序(asyn调用)获取结果:

<script type="text/javascript">
        window.onload = function() {
            var o = new M.Build(document.getElementById("ZID"));

            M.Events.observe(o, o.Events.Success, function() {
                // I have to get some value!!
            });

            M.Events.observe(o, o.Events.Fault, function() {
                // I have to get some value!!
            });
        }
    </script>
Run Code Online (Sandbox Code Playgroud)

javascript webbrowser-control winforms dom-events

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

如何在表单上实现闪烁标签

我有一个显示消息队列的表单,并且可以更改此消息的编号.真的我想在消息数量增加时闪烁标签(队列长度)以提高形式可用性.我应该实现自定义控件并使用其他线程或计时器来更改标签的颜色吗?有人实现了这么的功能吗?实现这样的行为的最佳解决方案(更少的资源和更少的性能降级)是什么?

解:

带有计时器的表单组件,可以限制每秒的动画数量,并对外部控件背景颜色实现淡出效果.

c# usability controls user-experience winforms

15
推荐指数
4
解决办法
6万
查看次数

面向架构(结构)与面向功能的项目结构

我参与的项目有一个面向架构的项目的文件/文件夹结构:

Root
|____ Node1
    |____ Event Handlers
    |         |___ <all event handlers of project>
    |____ Events
    |         |___ <all events of project>
    |____ Request Handlers  
    |         |___ <all request handlers of project>
    |____ Requests
    |         |___ <all requests of project>
    |____ ...
Run Code Online (Sandbox Code Playgroud)

从系统的架构角度来看(由开发团队提出)是明确的.

它是一个面向功能的结构,由设计师团队提出:

Root
|____ Feature #1
    |____ Event Handlers
    |         |___ <all event handlers of Feature #1>
    |____ Events
    |         |___ <all events of Feature #1>
    |____ Request Handlers  
    |         |___ <all request handlers of Feature #1>
    |____ …
Run Code Online (Sandbox Code Playgroud)

project-structure project-organization

5
推荐指数
1
解决办法
398
查看次数

在sql中进行拓扑排序

我正在解决表中某些对象之间的依赖关系.为了依赖它,我必须对对象做一些事情.例如,第一个对象不依赖于任何对象.第二个和第三个取决于第一个,依此类推.我必须使用 拓扑排序.有人可以显示实现的样本,所以在t-sql中排序.我有一张桌子:

create table dependency
(
  DependencyId PK
  ,ObjectId
  ,ObjectName
  ,DependsOnObjectId
)
Run Code Online (Sandbox Code Playgroud)

我想得到

ObjectId ObjectName SortOrder

谢谢.

t-sql sorting sql-server-2008 topological-sort

5
推荐指数
1
解决办法
2159
查看次数

如何重写此查询不使用union子句

如何重写此查询不要使用UNION(UNION ALL)子句:

SELECT
  c
FROM a
UNION
SELECT
 c
FROM b
Run Code Online (Sandbox Code Playgroud)

预期结果(记录集应该相同):

SELECT
  c
FROM ....
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2005

4
推荐指数
1
解决办法
1304
查看次数

只读字段句法快捷方式

我们知道代码:

using(myDisposable)
{
}
Run Code Online (Sandbox Code Playgroud)

相当于

try
{
   //do something with myDisposable 
}
finally
{
  IDisposable disposable = myDisposable as IDisposable;
  if(disposable != null)
  {
    disposable.Dispose();
  } 
}
Run Code Online (Sandbox Code Playgroud)

lock(_locker)
{
}
Run Code Online (Sandbox Code Playgroud)

相当于

Monitor.Enter(_locker);
try
{

}
finally
{

  Monitor.Exit(_locker);
}
Run Code Online (Sandbox Code Playgroud)

什么是相当于readonly字段?

readonly object _data = new object();
Run Code Online (Sandbox Code Playgroud)

c# readonly syntactic-sugar

4
推荐指数
1
解决办法
229
查看次数

等待线程完成执行

Java新手在这里.我正在使用第三方库给我一个函数,比如F(),其输出决定了我的逻辑.所以我需要它的结果继续我的代码.

问题是F()做了一些I/O,因此产生了一个线程来完成这个功能.他们给了我一些实现的回调,这些回调被调用来从线程返回状态/值.这很好,除了函数F()立即返回并且我的其余代码继续运行.我不希望这样,因为我必须根据F()的结果分配一些对象,所以我真的想等待F()真正完成.

这应该是人们经常遇到的问题.处理这个问题的正确方法是什么?这是我的设计或第三方库中的问题吗?或者我不太了解图书馆?

为了完整起见,我正在开发一个Android应用程序,该库是facebook sdk.该函数是单点登录函数authorize().虽然这是一个通用的问题,我认为最好在Java论坛中解决.

谢谢你的帮助. - P.

java multithreading

4
推荐指数
1
解决办法
3378
查看次数

如何在C#中表达VB .NET"Aggregate Into"?

我在VB .NET中有一个代码:

Aggregate item In items Into Sum(item.Value)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我转换成C#吗?

c# linq vb.net

3
推荐指数
1
解决办法
524
查看次数

为什么三个线程比10+更快

我的问题是针对Windows环境中多线程的性能问题.在测试我的代码后,我得到的结果是增加线程数不会增加并行计算的性能,并且在计算之后变得更少.到底是怎么回事?是否有可能找出最佳线程数的公式:F(处理器,内存..)=?

.net performance multithreading

3
推荐指数
1
解决办法
357
查看次数

会话设置以支持索引视图

我在我的数据库中使用索引视图.因此客户端应该有一些会话连接设置来调用它们.我使用ado.net连接,命令来调用存储过程.每次我必须调用存储过程时,我创建连接(我希望连接池允许我快速执行此操作)并执行命令将这些设置应用于当前连接.

// some code to create a new connection
 //...
 //... 

 if (connection.State != ConnectionState.Open)
 {
     connection.Open();
 }



    using (var cmd = connection.CreateCommand())
    {
        cmd.CommandType = CommandType.Text;
        cmd.CommandText =
                            @"
                    SET ANSI_NULLS ON
                    SET ANSI_PADDING ON
                    SET ANSI_WARNINGS ON
                    SET ARITHABORT ON
                    SET CONCAT_NULL_YIELDS_NULL ON
                    SET QUOTED_IDENTIFIER ON
                    SET NUMERIC_ROUNDABORT OFF";
        cmd.ExecuteNonQuery();
    }
Run Code Online (Sandbox Code Playgroud)

其他想法:在每次调用存储过程之前添加这些设置:

command.CommandText = 'SET....';
command.CommandText += ' EXEC MyStroredProc @...'; 
Run Code Online (Sandbox Code Playgroud)

这个解决方案会导致一些性能问题,不是吗?

如果每次都必须创建新连接,我怎么能避免这么多额外的工作呢?如何自动应用这些设置?

解:

ALTER DATABASE [MyDB] 
    SET 
    ANSI_NULLS ON,
    ANSI_PADDING ON,
    ANSI_WARNINGS ON,
    ARITHABORT ON,
    CONCAT_NULL_YIELDS_NULL ON, …
Run Code Online (Sandbox Code Playgroud)

.net c# ado.net sql-server-2008 indexed-views

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

什么代码更好地延迟主线程工作线程正在做它的工作

在工作线程执行其工作时,什么代码更好地延迟(等待)主线程?

1)

int ticks = System.Environment.TickCount;
while (System.Environment.TickCount - ticks < milliseconds);
Run Code Online (Sandbox Code Playgroud)

2)

Thread.Sleep(milliseconds);
Run Code Online (Sandbox Code Playgroud)

3)

Your variant.
Run Code Online (Sandbox Code Playgroud)

谢谢.

添加

解:

等待超时

c# performance multithreading .net-3.5

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

如果IE不是默认的Web浏览器,如何从.net应用程序启动IE

我必须以编程方式启动Click Once应用程序,并且我使用URL来启动部署过程.我们知道Web浏览器应该是IE成功完成这项任务(FF + Addon似乎也解决了它).如果IE不是默认的Web浏览器,如何从.net应用程序启动IE?

也许可以将IE作为默认浏览器,然后在安装后切换回上一个浏览器.

clickonce internet-explorer .net-3.5

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