它是什么以及如何使用?
我需要它,因为我有一个每秒插入DB的计时器,我有一个计时器处理程序和主线程之间的共享资源.我想保证,如果计时器处理程序在插入中花费超过一秒钟,则应按顺序执行等待的线程.这是我的计时器处理程序的示例代码
private void InsertBasicVaraibles(object param)
{
try
{
DataTablesMutex.WaitOne();//mutex for my shared resources
//insert into DB
}
catch (Exception ex)
{
//Handle
}
finally
{
DataTablesMutex.ReleaseMutex();
}
}
Run Code Online (Sandbox Code Playgroud)
但目前互斥锁并不保证任何订单.我提出详细的问题后没有答案!
我想在WPF中无缝平铺一堆不同颜色的矩形.也就是说,我希望将一堆矩形边对边放置,并且它们之间没有间隙.
如果所有内容都与像素对齐,这可以正常工作.但我也想支持任意缩放,理想情况下,我不想使用SnapsToDevicePixels(因为当图像缩小时会影响质量).但这意味着我的矩形有时会带有间隙.例如:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Black">
<Canvas SnapsToDevicePixels="False">
<Canvas.RenderTransform>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
</Canvas.RenderTransform>
<Rectangle Canvas.Left="25" Width="100" Height="100" Fill="#CFC"/>
<Rectangle Canvas.Left="125" Width="100" Height="100" Fill="#CCF"/>
</Canvas>
</Page>
Run Code Online (Sandbox Code Playgroud)
如果ScaleTransform的ScaleX为1,则矩形无缝地组合在一起.当它为0.5时,它们之间会出现深灰色条纹.我理解为什么 - 组合的半透明边缘像素不能组合成100%不透明.但我想要一种解决方法.
我总是可以让矩形重叠,但我不会总是事先知道它们将成为什么模式(这是一个最终将支持地图编辑器的游戏).此外,这会导致当周围的事情缩放的方式重叠区域的文物中(除非我做下叠部分,这是一个可怕的很多工作,而且还导致在角落的问题斜面切割的角度).
有没有什么方法可以将这些矩形组合成一个组合的"形状",在没有内部间隙的情况下渲染?我已经玩过GeometryDrawing,它正是这样做的,但后来我没有看到用不同颜色的画笔绘制每个RectangleGeometry的方法.
有没有其他方法可以在任意变换下无缝拼接形状,而不需要使用SnapsToDevicePixels?
我正在研究一些相对较小的概念验证,用于某些业务领域,并且有一些花哨的WPF UI工作.甚至没有太疯狂,我已经看到一些非常糟糕的性能,当我使用很多功能时,我认为这是首先考虑WPF用于UI构建的主要原因.我在这里问了一个关于为什么我的动画在第一次运行时被停止的问题,最后我发现一个非常简单的UserControl花了将近半秒来构建它的可视化树.我能够找到解决症状的方法,但是初始化一个简单的控件需要很长时间才能让我感到烦恼.现在,我正在使用和不使用DropShadowEffect测试我的动画,结果是白天和黑夜.一个微妙的阴影使我的控制看起来更好,但它完全破坏了动画的流畅度.我甚至不开始使用字体渲染.当控件有一堆渐变画笔和一个投影时,我的动画计算会使文本模糊大约一整秒,然后慢慢聚焦.
所以,我想我的问题是,是否有已知的研究,博客文章或文章详细说明哪些功能在当前版本的WPF中对于关键业务应用程序是一种危险.像Effects(即DropShadowEffect),渐变画笔,关键帧动画等会对渲染质量(或者这些东西的组合)产生太大的负面影响吗?WPF 4.0的最终版本是否会纠正其中一些问题?我已经读过VS2010 beta有一些相同的问题,它们应该在最终版本中得到解决.这是因为WPF本身的改进还是因为一半的应用程序将使用以前的技术重建?
将Visual Sourcesafe存储库移动到Mercurial的最佳方法是什么(我有兴趣保留所有历史记录)?
我有一个带有背景图像的Flex组件.图像在开始时很清晰,但每当我使用scaleX和scaleY缩放组件时都会出现锯齿状.如何将图像反锯齿,使其缩小到0.75,线条平滑,不会锯齿状?
一直试图让以下查询工作几个小时,但我的想法已经用完了.任何人都可以找到我出错的地方.任何指针都非常赞赏.
CalEvents = (List<CalEvent>)session.CreateSQLQuery(@"
SELECT *
FROM dbo.tb_calendar_calEvents
INNER JOIN dbo.tb_calEvents
ON (dbo.tb_calendar_calEvents.calEventID = dbo.tb_calEvents.id)
WHERE dbo.tb_calendar_calEvents.calendarID = 'theCalID'"
)
.AddEntity(typeof(CalEvent))
.SetInt64("theCalID", cal.id);
Run Code Online (Sandbox Code Playgroud)
错误:
Kanpeki.NUnit.CalUserTest.Should_return_logged_in_user:System.ArgumentException:参数theCalID不存在作为[SELECT*FROM dbo.tb_calendar_calEvents INNER JOIN中的命名参数dbo.tb_calEvents ON(dbo.tb_calendar_calEvents.calEventID = dbo.tb_calEvents.id)WHERE dbo .tb_calendar_calEvents.calendarID ='theCalID']
假设我有一个.Net Framework 3.5 SP1/CLR 2.0应用程序,它需要在x86和x64平台上运行.假设无论出于何种原因,我还需要创建单独的x86和x64安装程序.
因为我还有一个特定于x64的安装程序,将应用程序本身重新编译为x64而不是以"AnyCPU"为目标会有什么好处吗?
除了生成的程序集的头信息之外,将目标设置为x64是否会改变任何内容?
这是可能的......例如,假设我用302(或303)响应请求,并通知浏览器对给定位置发出请求..是否有可以通过HTTP 302发送的标头,以便来自浏览器的后续请求将包含该标头?
我知道我可以使用位置标题执行此操作,如重定向并将URL中的信息指定为查询字符串..但我想知道是否有更好的方法..它似乎应该是一个合法的场景. .
'内容已经移动,转到这里..哦,你会想带上这个给予重定向位置'
我猜一个大胖子不!
提前致谢.
编辑
这样做的原因在于PRG模式,你有一个GET url和POST url,假设你发布数据并且它是不可接受的,服务器将你重定向到GET,并做一些'魔术'以便'发送数据'到该GET,最常使用会话状态来存储变量.
然而,在许多这些PRG请求发生的情况下,这可能会崩溃,这被认为这不是常见的情况,通常没有人需要担心这个......但如果你这样做 - 你需要一种方法来识别请求,这可以完成在302中发送的查询字符串参数,以便根据该请求将特定条目置于会话状态.
问题是关于尝试从网址中删除"请求密钥",并使其更加隐含.. cookie'看起来'可以工作,但它们只会使螺丝钉的窗口变小.
如果你去我指定的'位置',发送这些参数会很棒.
编辑
请注意,我并不是试图让浏览器向该位置发送任意标头,但是如果有任何标头旨在提示请求的上下文(如查询字符串参数可以).
我有一个Extension方法,它应该根据Ids的集合过滤一个Queryable对象(IQueryable)....
请注意,IQueryable是通过LinqToSql请求从我的数据库中获取的
public static IQueryable<NewsItemSummary> WithID(this IQueryable<NewsItemSummary> qry, IQueryable<Guid> Ids)
{
return from newsItemSummary in qry
where Ids.Contains(newsItemSummary.ID)
select newsItemSummary;
}
Run Code Online (Sandbox Code Playgroud)
如果从数组或列表创建ID并将其作为可查询列表传入,则它无法正常工作
例如...
GetNewsItemSummary().WithID(ids.AsQueryable<Guid>())
Run Code Online (Sandbox Code Playgroud)
如果Ids是由LinqToSql请求组成的,它就可以工作了!
这是已知问题:http: //connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?反馈ID = 355026
我的Ids集合不能来自LinqToSql请求......
注意,如果我更改函数使它消耗和IList而不是IQueryable ....
public static IQueryable<NewsItemSummary> WithID(this IQueryable<NewsItemSummary> qry, IList<Guid> Ids)
{
return from newsItemSummary in qry
where Ids.Contains(newsItemSummary.ID)
select newsItemSummary;
}
Run Code Online (Sandbox Code Playgroud)
我现在得到以下异常:
Method 'Boolean Contains(System.Guid)' has no supported translation to SQL.
Run Code Online (Sandbox Code Playgroud)
所以......我想做的就是根据Guids列表或数组过滤我的新闻集合.
我需要为用户提供一种手段,以jpeg格式将照片上传到他们的网站.但是,照片的原始尺寸非常大,我想在上传前调整大小选项对用户来说非常轻松.似乎我唯一的选择是客户端应用程序,它在通过Web服务上载照片之前调整照片大小,或者在上传操作上调整照片大小的客户端JavaScript挂钩.第二个选项是非常试验性的,因为我没有JavaScript图像大小调整库,并且很难让JavaScript运行我当前的调整大小工具ImageMagick.
我确信这不是一个不常见的场景,并且对这样做的网站的一些建议或指针将不胜感激.
.net ×2
wpf ×2
64-bit ×1
antialiasing ×1
apache-flex ×1
c# ×1
compilation ×1
contains ×1
dvcs ×1
http ×1
http-headers ×1
image ×1
javascript ×1
linq ×1
linq-to-sql ×1
mercurial ×1
migration ×1
nhibernate ×1
performance ×1
sql ×1
tesselation ×1
tiles ×1
x86 ×1