我准备谈谈我从人工智能领域(神经网络)中选择的一些话题.我正在寻找一些有趣的东西,在现实生活中使用,最好不要太复杂(越简单,学生越容易理解,他们就越感兴趣).我认为这是寻找建议的好地方;)
我正在尝试为长时间运行的操作显示请等待对话框.问题是因为这是单线程,即使我告诉WaitScreen显示它永远不会.有没有办法可以更改该屏幕的可见性并立即显示?我将Cursor调用作为示例包含在内.在我调用this.Cursor之后,光标立即更新.这正是我想要的行为.
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Cursor = System.Windows.Input.Cursors.Pen;
WaitScreen.Visibility = Visibility.Visible;
// Do something long here
for (Int32 i = 0; i < 100000000; i++)
{
String s = i.ToString();
}
WaitScreen.Visibility = Visibility.Collapsed;
this.Cursor = System.Windows.Input.Cursors.Arrow;
}
Run Code Online (Sandbox Code Playgroud)
WaitScreen只是一个Z-index为99的网格,我隐藏并显示.
更新:我真的不想使用后台工作者,除非我必须这样做.代码中有许多地方会发生这种启动和停止.
我打算发一个问题,但提前想出来并决定发布问题和答案 - 或者至少我的意见.
当使用匿名委托作为WaitCallback时,在foreach循环中调用ThreadPool.QueueUserWorkItem时,似乎将相同的一个foreach-value传递到每个线程.
List< Thing > things = MyDb.GetTheThings();
foreach( Thing t in Things)
{
localLogger.DebugFormat( "About to queue thing [{0}].", t.Id );
ThreadPool.QueueUserWorkItem(
delegate()
{
try
{
WorkWithOneThing( t );
}
finally
{
Cleanup();
localLogger.DebugFormat("Thing [{0}] has been queued and run by the delegate.", t.Id );
}
});
}
Run Code Online (Sandbox Code Playgroud)
对于事物中的16个Thing实例的集合,我观察到传递给WorkWithOneThing的每个'Thing'对应于'things'列表中的最后一个项目.
我怀疑这是因为委托正在访问't'外部变量.请注意,我还尝试将Thing作为参数传递给匿名委托,但行为仍然不正确.
当我重新考虑代码以使用命名的WaitCallback方法并将Thing't'传递给方法时,瞧......事物的第一个实例被正确地传递给了WorkWithOneThing.
我想是平行学的一课.我还想象Parallel.For系列解决了这个问题,但是这个库不是我们的选择.
希望这能节省一些时间.
霍华德霍夫曼
在更新项目中,我必须执行以下操作:
将3个数据库从SQL2000移动到SQL2005并同时合并它们.SP和视图中已经有很多交叉数据库查询.当前计划是将每个旧数据库移动到1个数据库中的单独模式中.
这意味着我们还必须更改当前的SP和视图,我们现在拥有:
SELECT OrderId, OrderDate FROM Sales.dbo.Orders
Run Code Online (Sandbox Code Playgroud)
并期望我们必须改变它
SELECT OrderId, OrderDate FROM Sales.Orders
Run Code Online (Sandbox Code Playgroud)
问题是:我们如何尽可能自动化?
我知道SED和类似的更改脚本.我会欢迎有关如何"聪明"的提示,例如分区脚本的策略,性能(大量INSERT INTO行)等.
注意:我确实查看了导入/导出向导,但显然我必须在每个输出表上手动设置Schema,并通过ALTER脚本修复SP.
是否可以将引导线从一个图像复制到另一个图像?
我需要这个,因为我有几个图像需要完全相同的组成,所以我想使用指导线.
没有选择和复制指南行的选项,因此我必须手动添加它们.
如果有一个小脚本的脚本,那就太好了.
好的,我找到了一些有趣的功能:
(gimp-image-find-next-guide image index)
(gimp_image_add_hguide image xposition)
(gimp_image_add_vguide image yposition)
(gimp_image_get_guide_orientation image guide)
(gimp_image_get_guide_position image guide)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
编辑:因为似乎没有解决方案,或者我正在做一些没人知道的非标准的东西 - 我会修改我的问题也要问:当python应用程序创建时,完成日志记录的最佳方法是什么很多系统调用?
我的应用程序有两种模式.在交互模式下,我希望所有输出都转到屏幕以及日志文件,包括来自任何系统调用的输出.在守护程序模式下,所有输出都将转到日志中.守护进程模式很好用os.dup2().我无法找到一种方法将所有输出"发送"到交互模式的日志,而无需修改每个系统调用.
换句话说,我想要命令行'tee'的功能,用于python应用程序生成的任何输出,包括系统调用输出.
澄清:
要重定向所有输出,我会做这样的事情,并且效果很好:
# open our log file
so = se = open("%s.log" % self.name, 'w', 0)
# re-open stdout without buffering
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
# redirect stdout and stderr to the log file opened above
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(se.fileno(), sys.stderr.fileno())
Run Code Online (Sandbox Code Playgroud)
关于这一点的好处是它不需要来自其余代码的特殊打印调用.该代码还运行一些shell命令,因此不必单独处理每个输出.
简单地说,我想做同样的事情,除了重复而不是重定向.
起初以为我认为简单地扭转它们dup2应该有效.为什么不呢?这是我的测试:
import os, sys
### my broken solution:
so = se = open("a.log", 'w', 0)
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
os.dup2(sys.stdout.fileno(), so.fileno())
os.dup2(sys.stderr.fileno(), se.fileno()) …Run Code Online (Sandbox Code Playgroud) 我需要配置一个自定义的aspx页面,它可以完成一些工作,然后重定向到另一个页面.使用_layouts页面,AKA应用程序页面将无法工作,因为我只希望此页面可访问一个网站集.
我查看了使用MOSS 2007和WSS V3上的博客文章应用程序开发中的模式#4 .它感觉非常hacky,它要求你删除DLL.将其放入网站集的bin中,然后通过SP Designer上传文件.
我宁愿将此页面作为一项功能包含在我的网站定义中,也可以装订到现有网站定义中.我想我可以使用功能接收器将文件部署到页面SP列表.博客文章中的一条评论说:
请原谅我对此的无知可能我完全忽略了这一点,但是通过以编程方式将它们添加到页面splist来部署自定义页面会更容易吗?
基本上,我有一个带有用户控件的简单.aspx页面.我通过这种方法部署了它.
如何在不使用_layouts页面的情况下配置自定义页面?
我想另一个选择是继续使用_layouts页面,但要确保引用者是正确的.
我正在写一个我想要移植的库.因此,它不应该依赖于glibc或Microsoft扩展或标准中没有的任何其他内容.我有一个很好的从std :: exception派生的类层次结构,我用它来处理逻辑和输入中的错误.知道在特定文件和行号处抛出特定类型的异常是有用的,但是知道执行的执行方式可能会更有价值,所以我一直在寻找获取堆栈跟踪的方法.
我知道,使用execinfo.h功能(见的是glibc建造时这个数据是可用的质疑76822),并通过微软的C++实现的StackWalk接口(见问题126450),但我非常希望避免任何的不便携.
我正在考虑以这种形式自己实现这个功能:
class myException : public std::exception
{
public:
...
void AddCall( std::string s )
{ m_vCallStack.push_back( s ); }
std::string ToStr() const
{
std::string l_sRet = "";
...
l_sRet += "Call stack:\n";
for( int i = 0; i < m_vCallStack.size(); i++ )
l_sRet += " " + m_vCallStack[i] + "\n";
...
return l_sRet;
}
private:
...
std::vector< std::string > m_vCallStack;
};
ret_type some_function( param_1, param_2, param_3 )
{
try
{
...
} …Run Code Online (Sandbox Code Playgroud) 我应该寻找什么样的事件(在舞台上:阶段,我想)来改变stage.displayState?
我想让用户迭代我的字典而不修改它.
我考虑了两个解决方案:
1.ReadOnlyDictionary - 是否有可用的实现?
2.复制整个字典 - 复制它的最有效方法是什么?
谢谢
c# ×3
.net ×1
c++ ×1
closures ×1
flash ×1
fullscreen ×1
gimp ×1
moss ×1
portability ×1
python ×1
script-fu ×1
sharepoint ×1
sql-server ×1
stack-trace ×1
stage ×1
tee ×1
wpf ×1
xaml ×1