PDA

View Full Version : سوال: [STAThread] چیست؟



pupire
جمعه 13 تیر 1393, 21:15 عصر
سلام.
من در برنامه ام یک تایمر دارم که زمان فرا رسیدن زمان تابعی را اجرا می کند که در آن تابع محتوای یک فایل باید به داخل کلیپ بورد کپی شود. من اینکار را با تابع Clipboard.SetText(File.ReadAllText(path)); O انجام می دهم ولی به محض رسیدن به این خط کد خطایی ظاهر می شود و بیان می دارد که ThreadMode تابع اصلی روی MTA می باشد(به طور پیش فرض) . و برای رفع خطا توصیه می کند آن را روی STAقرار دهید
اخه من مبتدی چه به این چیزها
لطفا کمک نمایید

keyone72
جمعه 13 تیر 1393, 21:18 عصر
[STAThread]
private void button1_Click(object sender, EventArgs e)
{
Clipboard.SetText(File.ReadAllText(@"C:\Users\Keyone\Desktop\New Text Document.txt"));
}

pupire
جمعه 13 تیر 1393, 21:21 عصر
آق من این کارم بگی رو هر تابعی که منتهی به این تابع گفته شده بود انجام دادم بازم خطا می ده

keyone72
جمعه 13 تیر 1393, 21:23 عصر
آق من این کارم بگی رو هر تابعی که منتهی به این تابع گفته شده بود انجام دادم بازم خطا می ده

من تست کردم کار میکنه شما از تایمر درش بیار ببین بازم اینطوریه
خلاصه یه جای کارت اشتباه هست

pupire
جمعه 13 تیر 1393, 21:26 عصر
من تست کردم کار میکنه شما از تایمر درش بیار ببین بازم اینطوریه

شما درست میگید روی یک تابع معمولی جواب می دهد اما تابع باید داخل تایمر ور در زمانی که کاربر تنظیم کرده اجرا شه

pupire
جمعه 13 تیر 1393, 21:31 عصر
من تست کردم کار میکنه شما از تایمر درش بیار ببین بازم اینطوریه
خلاصه یه جای کارت اشتباه هست
ممنون شاید باید به قول شما در جای دیگر به دنبال سر منشا بود.

pupire
جمعه 13 تیر 1393, 21:39 عصر
کسی نظر دیگه ای نداره؟
هنوز مشکل به قوه خود باقیست ...:متفکر:

elec60
جمعه 13 تیر 1393, 22:19 عصر
اگه با تکنولوژی COM کار نمیکنی و هیچ کدوم از API هایی که استفاده میکنی از COM استفاده نمی کنن، نیازی نیست نگران بحث STAThread و MTAThread باشی.
تو بحث COM برای جلوگیری از Marshaling های غیر ضروری از STAThread استفاده میشه... STAThread و MTAThread برای ارتباط تک نخی و چند نخی بکار میره...