我试图运行下面的示例时遇到运行时异常.
Unhandled Exception: System.InvalidOperationException: The current SynchronizationContext may not be used as a TaskScheduler.
at System.Threading.Tasks.SynchronizationContextTaskScheduler..ctor()
at System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext()
at TaskDemo.MyForm..ctor() in D:\myStudio\ASPNet\CSharp\CSharp4\MyApp\MyApp\Hello.cs:line 428
at TaskDemo.SynchronizationContextTaskScheduler() in D:\myStudio\ASPNet\CSharp\CSharp4\MyApp\MyApp\Hello.cs:line 396
at TaskDemo.Go() in D:\myStudio\ASPNet\CSharp\CSharp4\MyApp\CLRviaCSharp\Hello.cs:line 214
at ComputeOps.Main() in D:\myStudio\ASPNet\CSharp\CSharp4\MyApp\CLRviaCSharp\Hello.cs:line 23
Run Code Online (Sandbox Code Playgroud)
代码示例:
public class TaskSchedulerTest {
public void Test() {
SynchronizationContextTaskScheduler();
}
private void SynchronizationContextTaskScheduler() {
var f = new MyForm();
System.Windows.Forms.Application.Run();
}
private sealed class MyForm : System.Windows.Forms.Form {
public MyForm() {
Text = "Synchronization Context Task Scheduler Demo";
Visible = true; …Run Code Online (Sandbox Code Playgroud) 我已经在C#中开发Winforms应用程序已有几年了,并且一直对将未来的发展转向WPF感兴趣,主要是因为我听到了积极的事情.但是,我想知道其他人在迁移到WPF时必须克服哪些障碍.是否会对您的生产力或您遇到的任何特定问题产生重大影响?
我创建了一个论坛,我们正在实现一个apc和memcache缓存解决方案来保存数据库的一些工作.
我开始使用像"Categories :: getAll"这样的键来实现缓存层,如果我有特定于用户的数据,我会用像用户ID之类的东西来附加密钥,这样你就可以得到"User::getFavoriteThreads|1471".当用户添加新的收藏夹线程时,我将删除缓存键,它将重新创建该条目.
然而,问题出现了:
我想在论坛中缓存线程.很简单,"论坛:: getThreads | $ iForumId".但是......通过分页,我必须将其分成几个缓存条目,例如
"Forum::getThreads|$iForumId|$iLimit|$iOffset".
Run Code Online (Sandbox Code Playgroud)
哪个好,直到有人在论坛中发布新帖子.我现在必须删除所有键"Forum::getThreads|$iForumId",无论限制和偏移是什么.
什么是解决这个问题的好方法?我真的宁愿不循环遍历每个可能的限制和偏移,直到找到不再匹配的东西.
谢谢.
我不小心编码SELECT $FOO..并得到错误"无效的伪列"$ FOO".
我找不到他们的任何文件.这是我应该知道的吗?
编辑:这是一个MS SQL Server特定的问题.
运行VISTA 32位.
我正在尝试安装c#Visual Express 2008 - 但它需要.NET 3.5.安装过程中的一个先决条件是.NET 3.5 ...它尝试安装但失败,没有真正的错误消息.
所以我从MS网站上下载了.NET 3.5独立版并尝试了它.但它失败并出现错误
[10/17/08,23:17:07] WapUI:[2] DepCheck表示未安装Microsoft .NET Framework 3.0SP1(CBS).[10/17/08,23:50:55] Microsoft .NET Framework 3.0SP1(CBS):[2]错误:组件Microsoft .NET Framework 3.0SP1(CBS)的安装失败.MSI返回错误代码34
我目前安装了c#Express edition 2005.但我读到的一切都说我可以将这两个应用程序安装在一起.我相信2005年运行Framework 2.0.2005年快报版运作良好. - 它只是2008版本我有问题安装.NET 3.5 ....
有任何想法吗 ?谢谢
我正在开发一个Vista/Win7桌面小工具,它使用半透明g:background(doc)区域g:text(doc).我正在通过addTextObject(doc)添加文本,这一切都按预期工作.
但是,我无法弄清楚如何将该文本设置为粗体样式.似乎没有办法通过我可以看到的暴露属性直接执行此操作,并且在这种情况下我不能使用常规文本+ CSS,因为此文本被放置在g:background对象上.
我也尝试直接指定粗体字,例如Arial Bold(不起作用)而不是Arial(工作).
那么怎么做呢?
编辑:我已经尝试设置父亲我的文本font-weight:bold的正文和g:background对象; 没运气.
我在存储过程中执行以下查询时收到以下错误.任何人都可以帮助找到错误?
不允许UPDATE,因为语句更新视图"sup_item",该视图参与连接并具有INSTEAD OF UPDATE触发器.
UPDATE si
SET
name = mc.name,
sup_item_cat_id = mc.res_sup_item_cat_id,
xf_value = mc.xf_value,
ava_start_date = mc.ava_start_date,
ava_end_date = mc.ava_end_date,
status_code = mc.status_code,
last_mod_us_id = CASE WHEN mc.last_mod_us_id = 42 THEN @posting_us_id
ELSE mc.last_mod_us_id END,
last_mod_tsp = CURRENT_tsp
FROM sup_item AS si
JOIN merch_cat_imp_sup_item AS mc
ON mc.sup_id = si.sup_id
AND mc.res_sup_item_id = si.sup_item_id
AND mc.cat_imp_event_id = @cat_imp_event_id
AND mc.accept_flag = 'y'
WHERE si.shi_flag = 'n'
Run Code Online (Sandbox Code Playgroud)
我找到了参考资料:http://msdn.microsoft.com/en-us/library/ms177523.aspx
具有INSTEAD OF UPDATE触发器的视图不能是具有FROM子句的UPDATE的目标.
所以,我必须重写UPDATE语句(它仍然可以在一个过程中)不使用sup_item(这是一个视图),但保留基础表(如果需要).
如果有人知道该怎么办,有人可以重写吗?
我遇到了问题.我在窗口xaml中添加了一个框架来加载页面.我可以直接将页面加载到框架的Source标签的框架中.有用.我需要使用C#中的代码来引用列表框菜单中的链接,在选择列表框项目时弹出适当的链接.我的问题是我不能在C#代码中引用框架,它只是无法看到.我用x:Name ="ContentFrame"定义了框架.当我在C#中引用时,Intellisense告诉"当前上下文中不存在名称"ContentFrame".我做错了什么?我迷失在这里.任何想法都受到高度赞赏.这是代码:
<Frame x:Name="ContentFrame" JournalOwnership="OwnsJournal" NavigationUIVisibility="Hidden" Grid.Column="2" </Frame>
private void SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
ListBoxItem lbi = ((sender as ListBox).SelectedItem as ListBoxItem);
string itemName = lbi.Content.ToString();
if ( Nav_ListBox.SelectedItem.Equals("Page1" ) )
{
ContentFrame.Source = new Uri("Pages/Page1.xaml", UriKind.Relative);
Canvas_Frame.NavigationUIVisibility = NavigationUIVisibility.Hidden;
}
}
Run Code Online (Sandbox Code Playgroud)
`
我正在开发一个能够将Excel文件转换为.CSV文件的项目,我认为我生成的C#代码存在一些问题并且错误消息找不到可安装的ISAM,请帮我解决一下我的问题.
码:
if (dlgOne.FileName.EndsWith(".xlsx"))
{
StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0;\"";
}
if (dlgTwo.FileName.EndsWith(".xls"))
{
StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 1.0;HDR=Yes;IMEX=1\"";
}
OleDbConnection conn = null;
conn = new OleDbConnection(StrConn);
conn.Open(); <------------ throw exception
Run Code Online (Sandbox Code Playgroud)
在调试模式下,应用程序抛出一个异常(第一行conn.Open();)我搜索了互联网,我发现我必须把Data Source它放在一个cotes之间,但它在我的情况下不起作用.
如何以编程方式捕获音频?我正在实现一个实时流式传输网络桌面的应用程序.视频部分已完成.我需要实现音频部分.我需要一种方法从声卡中获取PCM数据以馈送到我的编码器(使用Windows Media Format实现).
我认为答案与Win32 API中的openMixer(),waveInOpen()函数有关,但我不确定应该怎么做.
如何打开必要的频道以及如何从中读取PCM数据?
提前致谢.
c# ×3
sql-server ×2
t-sql ×2
windows ×2
wpf ×2
.net ×1
.net-3.5 ×1
audio ×1
caching ×1
csv ×1
directshow ×1
excel ×1
exception ×1
frame ×1
frameworks ×1
isam ×1
memcached ×1
navigation ×1
pagination ×1
php ×1
sql ×1
winapi ×1
windows-7 ×1
winforms ×1