我在Java 6中使用SwingWorker来避免在事件派发线程上运行长时间运行的代码.
如果在我的done()方法中调用get()会返回异常,那么处理异常的适当方法是什么?
我特别关注可能的InterruptedExceptions.JavaDoc示例简单地忽略了异常,但多年来我已经了解到吞咽异常导致难以调试的代码.
示例用法如下:
new SwingWorker<String, Void>() {
@Override
protected String doInBackground() throws Exception {
// do long-running calculation
return result;
}
@Override
protected void done() {
try {
setTextField(get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}.execute();
Run Code Online (Sandbox Code Playgroud) 我通过MacPorts将我的Bash更新为3.2.48失败了.
因为我得到了,似乎我没有活跃
echo $BASH_VERSION
3.2.17(1)-release
Run Code Online (Sandbox Code Playgroud)
你怎么能让最新的Bash活跃起来,以便我为我的登录shell获取它?
我一直在撞墙,试图弄清楚这个问题并认为它必须是我想念的小东西.我在网上搜索过,但我发现的任何东西似乎都没有用.HTML是:
<body>
<div id="header">
<div id="bannerleft">
</div>
<div id="bannerright">
<div id="WebLinks">
<span>Web Links:</span>
<ul>
<li><a href="#"><img src="../../Content/images/MySpace_32x32.png" alt="MySpace"/></a></li>
<li><a href="#"><img src="../../Content/images/FaceBook_32x32.png" alt="Facebook"/></a></li>
<li><a href="#"><img src="../../Content/images/Youtube_32x32.png" alt="YouTube"/></a></li>
</ul>
</div>
</div>
</div>
<div id="Sidebar">
<div id="SidebarBottom">
</div>
</div>
<div id="NavigationContainer">
<ul id="Navigation">
<li><a href="#">Nav</a></li>
<li><a href="#">Nav</a></li>
<li><a href="#">Nav</a></li>
<li><a href="#">Nav</a></li>
<li><a href="#">Nav</a></li>
<li><a href="#">Nav</a></li>
</ul>
</div>
<div id="Main">
<!-- content -->
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我的完整CSS是:
* {
margin: 0px;
padding: 0px;
}
body {
font-family: Calibri, Sans-Serif;
height: 100%;
}
#header {
width: …Run Code Online (Sandbox Code Playgroud) 有没有一种规范的方法可以在Objective C中随机化一个数组?
如何在没有"真正"更改网址栏中的网址的情况下将www.foo.com/bar重定向到www.foo.com:8080?
所以我希望www.foo.com/bar(+可能的GET参数/子文件夹)始终显示在url栏中.
这可以用mod_rewrite完成吗?
我的应用程序中有一些Listboxes绑定到ObservableCollections,我想动画一个项目,如果它被删除.
我已经发现了一个关于使用FrameworkElement.Loaded事件动画添加项目的问题,但当然这与Unloaded事件的工作方式不同.
有没有办法以可以在datatemplate中使用的方式执行此操作?
编辑:我已经连接到我的ItemsSource中的CollectionChanged事件,并尝试手动应用动画.目前它看起来像这样:
ListBoxItem item = stack.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem;
item.LayoutTransform = new ScaleTransform(1, 1);
DoubleAnimation scaleAnimation = new DoubleAnimation();
scaleAnimation.From = 1;
scaleAnimation.To = 0;
scaleAnimation.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 500));
ScaleTransform transform = (ScaleTransform)item.LayoutTransform;
transform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation);
Run Code Online (Sandbox Code Playgroud)
问题是,它根本不起作用.该项目仍然只是弹出.当方法被调用时,该项目仍然存在,所以它不应该在它消失之前播放动画吗?或者我完全错了吗?
我一直在做一些重构和重组,我已经移动了一堆文件.
我想更新每个文件,以便根据其新位置具有"正确"的命名空间.使用ReSharper,我可以进入每个文件,它向我显示命名空间是不正确的,但这样我必须一次完成每个文件.
无论如何更新文件夹或项目中的每个文件的命名空间?
在我正在进行的.net 3.5项目中,我正在为服务类编写一些测试.
public class ServiceClass : IServiceClass
{
private readonly IRepository _repository;
public ServiceClass(IRepository repository)
{
_repository = repository;
}
#region IServiceClass Members
public IEnumerable<ActionType> GetAvailableActions()
{
IQueryable<ActionType> actionTypeQuery = _repository.Query<ActionType>();
return actionTypeQuery.Where(x => x.Name == "debug").AsEnumerable();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
而且我很难搞清楚如何存根或嘲笑
actionTypeQuery.Where(x => x.Name == "debug")
Run Code Online (Sandbox Code Playgroud)
部分.
这是我到目前为止所得到的:
[TestFixture]
public class ServiceClassTester
{
private ServiceClass _service;
private IRepository _repository;
private IQueryable<ActionType> _actionQuery;
[SetUp]
public void SetUp()
{
_repository = MockRepository.GenerateMock<IRepository>();
_service = new ServiceClass(_repository);
}
[Test]
public void heres_a_test()
{ …Run Code Online (Sandbox Code Playgroud) 这里非常多的菜鸟,所以最好假设我对任何答案一无所知.
我一直在写一个小应用程序,它运行良好,但可读性是我的数字的噩梦.
基本上,我想要做的就是在屏幕上显示的数字中添加逗号,以便于阅读.有没有快速简便的方法来做到这一点?
我一直在使用stringstream来获取我的数字(我不知道为什么在这一点上甚至建议这个,在我完成的教程中只是建议),例如(裁剪出无关紧要的位):
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int items;
string stringcheck;
...
cout << "Enter how many items you have: ";
getline (cin, stringcheck);
stringstream(stringcheck) >> items;
...
cout << "\nYou have " << items << " items.\n";
Run Code Online (Sandbox Code Playgroud)
当这个数字被打成大的东西时,其他一切都变得非常令人头疼.
是否有任何快速简便的方法使其打印"13,653,456"而不是"13653456"就像现在一样(假设当然是输入的内容)?
注意:如果重要,我将其作为Microsoft Visual C++ 2008 Express Edition中的控制台应用程序.
我将以下正则表达式设置为ValidationExpressionWeb表单中RegularExpressionValidator 的属性.当我在经过验证的控件中输入非法字符时,验证程序会检测到它并显示错误消息.
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
我的验证员:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
Run Code Online (Sandbox Code Playgroud)
我的服务器端验证:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
Run Code Online (Sandbox Code Playgroud)
如您所见,客户端和服务器端应用了完全相同的模式.
但是,当我清除已验证的控件并提交一个空字符串时,验证器认为它没问题,并且我从服务器端验证中收到错误.除了违反RegularExpressionValidator的合同外,任何人都知道这里有什么问题吗?
c# ×3
.net ×1
asp.net ×1
bash ×1
c++ ×1
css ×1
iphone ×1
iqueryable ×1
java ×1
macos ×1
macports ×1
mod-rewrite ×1
nunit ×1
objective-c ×1
random ×1
redirect ×1
resharper ×1
rhino-mocks ×1
swing ×1
swingworker ×1
unit-testing ×1
wpf ×1
xaml ×1